tree: git://anongit.freedesktop.org/drm-intel drm-intel-next-queued head: c16fd9be70faf3c49a61700efd16018dd910e390 commit: f26ae6a652f2e75a3a12ac22b7da5797978436c4 [5/6] drm/i915: SRM revocation check for HDCP1.4 and 2.2 If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> smatch warnings: drivers/gpu/drm/i915/intel_hdcp.c:1406 hdcp2_authenticate_repeater_topology() warn: should this be a bitwise op? git remote add drm-intel git://anongit.freedesktop.org/drm-intel git remote update drm-intel git checkout f26ae6a652f2e75a3a12ac22b7da5797978436c4 vim +1406 drivers/gpu/drm/i915/intel_hdcp.c d849178e Ramalingam C 2019-02-16 1367 static d849178e Ramalingam C 2019-02-16 1368 int hdcp2_authenticate_repeater_topology(struct intel_connector *connector) d849178e Ramalingam C 2019-02-16 1369 { d849178e Ramalingam C 2019-02-16 1370 struct intel_digital_port *intel_dig_port = conn_to_dig_port(connector); d849178e Ramalingam C 2019-02-16 1371 struct intel_hdcp *hdcp = &connector->hdcp; f26ae6a6 Ramalingam C 2019-05-07 1372 struct drm_device *dev = connector->base.dev; d849178e Ramalingam C 2019-02-16 1373 union { d849178e Ramalingam C 2019-02-16 1374 struct hdcp2_rep_send_receiverid_list recvid_list; d849178e Ramalingam C 2019-02-16 1375 struct hdcp2_rep_send_ack rep_ack; d849178e Ramalingam C 2019-02-16 1376 } msgs; d849178e Ramalingam C 2019-02-16 1377 const struct intel_hdcp_shim *shim = hdcp->shim; f26ae6a6 Ramalingam C 2019-05-07 1378 u32 seq_num_v, device_cnt; d849178e Ramalingam C 2019-02-16 1379 u8 *rx_info; d849178e Ramalingam C 2019-02-16 1380 int ret; d849178e Ramalingam C 2019-02-16 1381 d849178e Ramalingam C 2019-02-16 1382 ret = shim->read_2_2_msg(intel_dig_port, HDCP_2_2_REP_SEND_RECVID_LIST, d849178e Ramalingam C 2019-02-16 1383 &msgs.recvid_list, sizeof(msgs.recvid_list)); d849178e Ramalingam C 2019-02-16 1384 if (ret < 0) d849178e Ramalingam C 2019-02-16 1385 return ret; d849178e Ramalingam C 2019-02-16 1386 d849178e Ramalingam C 2019-02-16 1387 rx_info = msgs.recvid_list.rx_info; d849178e Ramalingam C 2019-02-16 1388 d849178e Ramalingam C 2019-02-16 1389 if (HDCP_2_2_MAX_CASCADE_EXCEEDED(rx_info[1]) || d849178e Ramalingam C 2019-02-16 1390 HDCP_2_2_MAX_DEVS_EXCEEDED(rx_info[1])) { d849178e Ramalingam C 2019-02-16 1391 DRM_DEBUG_KMS("Topology Max Size Exceeded\n"); d849178e Ramalingam C 2019-02-16 1392 return -EINVAL; d849178e Ramalingam C 2019-02-16 1393 } d849178e Ramalingam C 2019-02-16 1394 d849178e Ramalingam C 2019-02-16 1395 /* Converting and Storing the seq_num_v to local variable as DWORD */ 0de655ca Ramalingam C 2019-05-07 1396 seq_num_v = 0de655ca Ramalingam C 2019-05-07 1397 drm_hdcp_be24_to_cpu((const u8 *)msgs.recvid_list.seq_num_v); d849178e Ramalingam C 2019-02-16 1398 d849178e Ramalingam C 2019-02-16 1399 if (seq_num_v < hdcp->seq_num_v) { d849178e Ramalingam C 2019-02-16 1400 /* Roll over of the seq_num_v from repeater. Reauthenticate. */ d849178e Ramalingam C 2019-02-16 1401 DRM_DEBUG_KMS("Seq_num_v roll over.\n"); d849178e Ramalingam C 2019-02-16 1402 return -EINVAL; d849178e Ramalingam C 2019-02-16 1403 } d849178e Ramalingam C 2019-02-16 1404 f26ae6a6 Ramalingam C 2019-05-07 1405 device_cnt = HDCP_2_2_DEV_COUNT_HI(rx_info[0]) << 4 || ^^ Bitwise OR | was probably intended. f26ae6a6 Ramalingam C 2019-05-07 @1406 HDCP_2_2_DEV_COUNT_LO(rx_info[1]); f26ae6a6 Ramalingam C 2019-05-07 1407 if (drm_hdcp_check_ksvs_revoked(dev, msgs.recvid_list.receiver_ids, f26ae6a6 Ramalingam C 2019-05-07 1408 device_cnt)) { f26ae6a6 Ramalingam C 2019-05-07 1409 DRM_ERROR("Revoked receiver ID(s) is in list\n"); f26ae6a6 Ramalingam C 2019-05-07 1410 return -EPERM; f26ae6a6 Ramalingam C 2019-05-07 1411 } f26ae6a6 Ramalingam C 2019-05-07 1412 d849178e Ramalingam C 2019-02-16 1413 ret = hdcp2_verify_rep_topology_prepare_ack(connector, d849178e Ramalingam C 2019-02-16 1414 &msgs.recvid_list, d849178e Ramalingam C 2019-02-16 1415 &msgs.rep_ack); d849178e Ramalingam C 2019-02-16 1416 if (ret < 0) d849178e Ramalingam C 2019-02-16 1417 return ret; d849178e Ramalingam C 2019-02-16 1418 d849178e Ramalingam C 2019-02-16 1419 hdcp->seq_num_v = seq_num_v; d849178e Ramalingam C 2019-02-16 1420 ret = shim->write_2_2_msg(intel_dig_port, &msgs.rep_ack, d849178e Ramalingam C 2019-02-16 1421 sizeof(msgs.rep_ack)); d849178e Ramalingam C 2019-02-16 1422 if (ret < 0) d849178e Ramalingam C 2019-02-16 1423 return ret; d849178e Ramalingam C 2019-02-16 1424 d849178e Ramalingam C 2019-02-16 1425 return 0; d849178e Ramalingam C 2019-02-16 1426 } --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel