On 2020-12-04 at 14:32:16 +0530, Ramalingam C wrote:
On 2020-11-26 at 13:07:08 +0530, Anshuman Gupta wrote:
There can be situation when DP MST connector is created without mst modeset being done, in those cases connector->encoder will be NULL. MST connector->encoder initializes after modeset.
This patch is to reject the HDCP request on MST connector without encoder initialized(modeset). But userspace are not supposed to request hdcp at such scenario right?.
AFAIU user space doesn't know about DP MST topology until unless it parse PATH property. This crash oberved on chrome OS with DP MST dock.
From driver POV it should avoid kernel crash in such cases.
Thanks, Anshuman Gupta.
Ram
Don't enable HDCP in such cases to prevent any crash.
Cc: Ramalingam C ramalingam.c@intel.com Cc: Juston Li juston.li@intel.com Signed-off-by: Anshuman Gupta anshuman.gupta@intel.com
drivers/gpu/drm/i915/display/intel_hdcp.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c index b9d8825e2bb1..7d63e9495956 100644 --- a/drivers/gpu/drm/i915/display/intel_hdcp.c +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c @@ -2106,6 +2106,12 @@ int intel_hdcp_enable(struct intel_connector *connector, if (!hdcp->shim) return -ENOENT;
- if (!connector->encoder) {
drm_err(&dev_priv->drm, "[%s:%d] encoder is not initialized\n",
connector->base.name, connector->base.base.id);
return -ENODEV;
- }
- mutex_lock(&hdcp->mutex); mutex_lock(&dig_port->hdcp_mutex); drm_WARN_ON(&dev_priv->drm,
-- 2.26.2