[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