[bug report] drm/bridge: it6505: fix HDCP CTS compare V matching
Dan Carpenter
dan.carpenter at linaro.org
Wed Jan 8 09:13:33 UTC 2025
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.
2260 }
2261 }
2262
2263 DRM_DEV_DEBUG_DRIVER(dev, "V' NOT match!! %d", retry);
2264 return false;
2265 }
regards,
dan carpenter
More information about the dri-devel
mailing list