RE: [bug report] drm/bridge: it6505: fix HDCP CTS compare V matching

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Dan Carpenter,
>
>-----Original Message-----
>From: Dan Carpenter <dan.carpenter@xxxxxxxxxx> 
>Sent: Wednesday, January 8, 2025 5:14 PM
>To: Hermes Wu (吳佳宏) <Hermes.Wu@xxxxxxxxxx>
>Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx
>Subject: [bug report] drm/bridge: it6505: fix HDCP CTS compare V matching
>
>Hello Hermes Wu,
>
>Commit 0989c02c7a5c ("drm/bridge: it6505: fix HDCP CTS compare V
>matching") from Dec 30, 2024 (linux-next), leads to the following Smatch static checker warning:
>
>	drivers/gpu/drm/bridge/ite-it6505.c:2253 it6505_hdcp_part2_ksvlist_check()
>	warn: ignoring unreachable code.
>
>drivers/gpu/drm/bridge/ite-it6505.c
>    2230 static bool it6505_hdcp_part2_ksvlist_check(struct it6505 *it6505)
>    2231 {
>    2232         struct device *dev = it6505->dev;
>    2233         u8 av[5][4], bv[5][4];
>    2234         int i, err, retry;
>    2235 
>    2236         i = it6505_setup_sha1_input(it6505, it6505->sha1_input);
>    2237         if (i <= 0) {
>    2238                 dev_err(dev, "SHA-1 Input length error %d", i);
>    2239                 return false;
>    2240         }
>    2241 
>    2242         it6505_sha1_digest(it6505, it6505->sha1_input, i, (u8 *)av);
>    2243         /*1B-05 V' must retry 3 times */
>    2244         for (retry = 0; retry < 3; retry++) {
>    2245                 err = it6505_get_dpcd(it6505, DP_AUX_HDCP_V_PRIME(0), (u8 *)bv,
>    2246                                       sizeof(bv));
>    2247 
>    2248                 if (err < 0) {
>    2249                         dev_err(dev, "Read V' value Fail %d", retry);
>    2250                         continue;
>    2251                 }
>    2252 
>--> 2253                 for (i = 0; i < 5; i++) {
>
>This looks like a loop from 0-4.
>
>    2254                         if (bv[i][3] != av[i][0] || bv[i][2] != av[i][1] ||
>    2255                             av[i][1] != av[i][2] || bv[i][0] != av[i][3])
>    2256                                 break;
>    2257 
>    2258                         DRM_DEV_DEBUG_DRIVER(dev, "V' all match!! %d, %d", retry, i);
>    2259                         return true;
>
>But it is a "loop" from 0-0.

I have fix this in following,

https://lore.kernel.org/all/20250108-fix-hdcp-v-comp-v1-1-9404811825cd@xxxxxxxxxx/

Thanks a lot.

>    2260                 }
>    2261         }
>    2262 
>    2263         DRM_DEV_DEBUG_DRIVER(dev, "V' NOT match!! %d", retry);
>    2264         return false;
>    2265 }
>
>regards,
>dan carpenter
>

BR,
Hermes





[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux