Message ID | 20201023122112.15265-3-anshuman.gupta@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | HDCP 2.2 and HDCP 1.4 Gen12 DP MST support | expand |
> -----Original Message----- > From: Anshuman Gupta <anshuman.gupta@intel.com> > Sent: Friday, October 23, 2020 5:51 PM > To: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org > Cc: seanpaul@chromium.org; Nikula, Jani <jani.nikula@intel.com>; C, > Ramalingam <ramalingam.c@intel.com>; Li, Juston <juston.li@intel.com>; > Shankar, Uma <uma.shankar@intel.com>; Gupta, Anshuman > <anshuman.gupta@intel.com> > Subject: [PATCH v3 02/16] drm/i915/hdcp: Get conn while content_type changed > > Get DRM connector reference count while scheduling a prop work to avoid any > possible destroy of DRM connector when it is in DRM_CONNECTOR_REGISTERED > state. > > Fixes: a6597faa2d59 ("drm/i915: Protect workers against disappearing > connectors") > Cc: Sean Paul <seanpaul@chromium.org> > Cc: Ramalingam C <ramalingam.c@intel.com> > Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com> > --- > drivers/gpu/drm/i915/display/intel_hdcp.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c > b/drivers/gpu/drm/i915/display/intel_hdcp.c > index 0d9e8d3b5603..42cf91cf4f20 100644 > --- a/drivers/gpu/drm/i915/display/intel_hdcp.c > +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c > @@ -2210,6 +2210,7 @@ void intel_hdcp_update_pipe(struct intel_atomic_state > *state, > if (content_protection_type_changed) { > mutex_lock(&hdcp->mutex); > hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED; > + drm_connector_get(&connector->base); Where are releasing this ref. > schedule_work(&hdcp->prop_work); > mutex_unlock(&hdcp->mutex); > } > -- > 2.26.2
On 2020-10-27 at 11:04:17 +0530, Shankar, Uma wrote: > > > > -----Original Message----- > > From: Anshuman Gupta <anshuman.gupta@intel.com> > > Sent: Friday, October 23, 2020 5:51 PM > > To: intel-gfx@lists.freedesktop.org; dri-devel@lists.freedesktop.org > > Cc: seanpaul@chromium.org; Nikula, Jani <jani.nikula@intel.com>; C, > > Ramalingam <ramalingam.c@intel.com>; Li, Juston <juston.li@intel.com>; > > Shankar, Uma <uma.shankar@intel.com>; Gupta, Anshuman > > <anshuman.gupta@intel.com> > > Subject: [PATCH v3 02/16] drm/i915/hdcp: Get conn while content_type changed > > > > Get DRM connector reference count while scheduling a prop work to avoid any > > possible destroy of DRM connector when it is in DRM_CONNECTOR_REGISTERED > > state. > > > > Fixes: a6597faa2d59 ("drm/i915: Protect workers against disappearing > > connectors") > > Cc: Sean Paul <seanpaul@chromium.org> > > Cc: Ramalingam C <ramalingam.c@intel.com> > > Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com> > > --- > > drivers/gpu/drm/i915/display/intel_hdcp.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c > > b/drivers/gpu/drm/i915/display/intel_hdcp.c > > index 0d9e8d3b5603..42cf91cf4f20 100644 > > --- a/drivers/gpu/drm/i915/display/intel_hdcp.c > > +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c > > @@ -2210,6 +2210,7 @@ void intel_hdcp_update_pipe(struct intel_atomic_state > > *state, > > if (content_protection_type_changed) { > > mutex_lock(&hdcp->mutex); > > hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED; > > + drm_connector_get(&connector->base); > > Where are releasing this ref. Thanks Uma for review the releasing ref is present in prop work function. intel_hdcp_prop_work(). As prop function releases the ref for connector somtimes it lead to destroy the connector, if we schedule the prop work without taking any connector reference. Thanks, Anshuman Gupta. > > > schedule_work(&hdcp->prop_work); > > mutex_unlock(&hdcp->mutex); > > } > > -- > > 2.26.2 >
diff --git a/drivers/gpu/drm/i915/display/intel_hdcp.c b/drivers/gpu/drm/i915/display/intel_hdcp.c index 0d9e8d3b5603..42cf91cf4f20 100644 --- a/drivers/gpu/drm/i915/display/intel_hdcp.c +++ b/drivers/gpu/drm/i915/display/intel_hdcp.c @@ -2210,6 +2210,7 @@ void intel_hdcp_update_pipe(struct intel_atomic_state *state, if (content_protection_type_changed) { mutex_lock(&hdcp->mutex); hdcp->value = DRM_MODE_CONTENT_PROTECTION_DESIRED; + drm_connector_get(&connector->base); schedule_work(&hdcp->prop_work); mutex_unlock(&hdcp->mutex); }
Get DRM connector reference count while scheduling a prop work to avoid any possible destroy of DRM connector when it is in DRM_CONNECTOR_REGISTERED state. Fixes: a6597faa2d59 ("drm/i915: Protect workers against disappearing connectors") Cc: Sean Paul <seanpaul@chromium.org> Cc: Ramalingam C <ramalingam.c@intel.com> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com> --- drivers/gpu/drm/i915/display/intel_hdcp.c | 1 + 1 file changed, 1 insertion(+)