@@ -1005,7 +1005,8 @@ static void intel_hdcp_update_value(struct intel_connector *connector,
1005
1005
hdcp -> value = value ;
1006
1006
if (update_property ) {
1007
1007
drm_connector_get (& connector -> base );
1008
- queue_work (i915 -> unordered_wq , & hdcp -> prop_work );
1008
+ if (!queue_work (i915 -> unordered_wq , & hdcp -> prop_work ))
1009
+ drm_connector_put (& connector -> base );
1009
1010
}
1010
1011
}
1011
1012
@@ -2480,7 +2481,8 @@ void intel_hdcp_update_pipe(struct intel_atomic_state *state,
2480
2481
mutex_lock (& hdcp -> mutex );
2481
2482
hdcp -> value = DRM_MODE_CONTENT_PROTECTION_DESIRED ;
2482
2483
drm_connector_get (& connector -> base );
2483
- queue_work (i915 -> unordered_wq , & hdcp -> prop_work );
2484
+ if (!queue_work (i915 -> unordered_wq , & hdcp -> prop_work ))
2485
+ drm_connector_put (& connector -> base );
2484
2486
mutex_unlock (& hdcp -> mutex );
2485
2487
}
2486
2488
@@ -2497,7 +2499,9 @@ void intel_hdcp_update_pipe(struct intel_atomic_state *state,
2497
2499
*/
2498
2500
if (!desired_and_not_enabled && !content_protection_type_changed ) {
2499
2501
drm_connector_get (& connector -> base );
2500
- queue_work (i915 -> unordered_wq , & hdcp -> prop_work );
2502
+ if (!queue_work (i915 -> unordered_wq , & hdcp -> prop_work ))
2503
+ drm_connector_put (& connector -> base );
2504
+
2501
2505
}
2502
2506
}
2503
2507
0 commit comments