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 <l...@intel.com>
Reported-by: Dan Carpenter <dan.carpen...@oracle.com>

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
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to