[Intel-gfx] [PATCH] drm/i915/hdcp: Fail Repeater authentication if Type1 device not present

kernel test robot lkp at intel.com
Wed Dec 6 14:34:34 UTC 2023


Hi Suraj,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-tip/drm-tip]

url:    https://github.com/intel-lab-lkp/linux/commits/Suraj-Kandpal/drm-i915-hdcp-Fail-Repeater-authentication-if-Type1-device-not-present/20231206-174124
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
patch link:    https://lore.kernel.org/r/20231206093916.1733863-1-suraj.kandpal%40intel.com
patch subject: [Intel-gfx] [PATCH] drm/i915/hdcp: Fail Repeater authentication if Type1 device not present
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20231206/202312062210.SQ5uhQkD-lkp@intel.com/config)
compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231206/202312062210.SQ5uhQkD-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312062210.SQ5uhQkD-lkp@intel.com/

All errors (new ones prefixed by >>):

   warning: unknown warning option '-Wrestrict' [-Wunknown-warning-option]
   warning: unknown warning option '-Wpacked-not-aligned'; did you mean '-Wpacked-non-pod'? [-Wunknown-warning-option]
   warning: unknown warning option '-Wformat-overflow'; did you mean '-Wshift-overflow'? [-Wunknown-warning-option]
   warning: unknown warning option '-Wformat-truncation' [-Wunknown-warning-option]
   warning: unknown warning option '-Wstringop-overflow'; did you mean '-Wshift-overflow'? [-Wunknown-warning-option]
   warning: unknown warning option '-Wstringop-truncation'; did you mean '-Wstring-concatenation'? [-Wunknown-warning-option]
>> drivers/gpu/drm/i915/display/intel_hdcp.c:1638:16: error: use of undeclared identifier 'dev_priv'
                   drm_dbg_kms(&dev_priv->drm,
                                ^
>> drivers/gpu/drm/i915/display/intel_hdcp.c:1638:16: error: use of undeclared identifier 'dev_priv'
   6 warnings and 2 errors generated.


vim +/dev_priv +1638 drivers/gpu/drm/i915/display/intel_hdcp.c

  1599	
  1600	static
  1601	int hdcp2_authenticate_repeater_topology(struct intel_connector *connector)
  1602	{
  1603		struct intel_digital_port *dig_port = intel_attached_dig_port(connector);
  1604		struct drm_i915_private *i915 = to_i915(connector->base.dev);
  1605		struct intel_hdcp *hdcp = &connector->hdcp;
  1606		union {
  1607			struct hdcp2_rep_send_receiverid_list recvid_list;
  1608			struct hdcp2_rep_send_ack rep_ack;
  1609		} msgs;
  1610		const struct intel_hdcp_shim *shim = hdcp->shim;
  1611		u32 seq_num_v, device_cnt;
  1612		u8 *rx_info;
  1613		int ret;
  1614	
  1615		ret = shim->read_2_2_msg(connector, HDCP_2_2_REP_SEND_RECVID_LIST,
  1616					 &msgs.recvid_list, sizeof(msgs.recvid_list));
  1617		if (ret < 0)
  1618			return ret;
  1619	
  1620		rx_info = msgs.recvid_list.rx_info;
  1621	
  1622		if (HDCP_2_2_MAX_CASCADE_EXCEEDED(rx_info[1]) ||
  1623		    HDCP_2_2_MAX_DEVS_EXCEEDED(rx_info[1])) {
  1624			drm_dbg_kms(&i915->drm, "Topology Max Size Exceeded\n");
  1625			return -EINVAL;
  1626		}
  1627	
  1628		/*
  1629		 * MST topology is not Type 1 capable if it contains a downstream
  1630		 * device that is only HDCP 1.x or Legacy HDCP 2.0/2.1 compliant.
  1631		 */
  1632		dig_port->hdcp_mst_type1_capable =
  1633			!HDCP_2_2_HDCP1_DEVICE_CONNECTED(rx_info[1]) &&
  1634			!HDCP_2_2_HDCP_2_0_REP_CONNECTED(rx_info[1]);
  1635	
  1636		if (!dig_port->hdcp_mst_type1_capable && hdcp->content_type &&
  1637		    !intel_encoder_is_mst(connector->encoder)) {
> 1638			drm_dbg_kms(&dev_priv->drm,
  1639				    "HDCP1.x or 2.0 Legacy Device Downstream\n");
  1640			return -EINVAL;
  1641		}
  1642	
  1643		/* Converting and Storing the seq_num_v to local variable as DWORD */
  1644		seq_num_v =
  1645			drm_hdcp_be24_to_cpu((const u8 *)msgs.recvid_list.seq_num_v);
  1646	
  1647		if (!hdcp->hdcp2_encrypted && seq_num_v) {
  1648			drm_dbg_kms(&i915->drm,
  1649				    "Non zero Seq_num_v at first RecvId_List msg\n");
  1650			return -EINVAL;
  1651		}
  1652	
  1653		if (seq_num_v < hdcp->seq_num_v) {
  1654			/* Roll over of the seq_num_v from repeater. Reauthenticate. */
  1655			drm_dbg_kms(&i915->drm, "Seq_num_v roll over.\n");
  1656			return -EINVAL;
  1657		}
  1658	
  1659		device_cnt = (HDCP_2_2_DEV_COUNT_HI(rx_info[0]) << 4 |
  1660			      HDCP_2_2_DEV_COUNT_LO(rx_info[1]));
  1661		if (drm_hdcp_check_ksvs_revoked(&i915->drm,
  1662						msgs.recvid_list.receiver_ids,
  1663						device_cnt) > 0) {
  1664			drm_err(&i915->drm, "Revoked receiver ID(s) is in list\n");
  1665			return -EPERM;
  1666		}
  1667	
  1668		ret = hdcp2_verify_rep_topology_prepare_ack(connector,
  1669							    &msgs.recvid_list,
  1670							    &msgs.rep_ack);
  1671		if (ret < 0)
  1672			return ret;
  1673	
  1674		hdcp->seq_num_v = seq_num_v;
  1675		ret = shim->write_2_2_msg(connector, &msgs.rep_ack,
  1676					  sizeof(msgs.rep_ack));
  1677		if (ret < 0)
  1678			return ret;
  1679	
  1680		return 0;
  1681	}
  1682	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


More information about the Intel-gfx mailing list