Skip to content

Commit c8bd0e4

Browse files
ideakdanvet
authored andcommitted
drm/i915: fix use after free during eDP encoder destroying
After commit a18c0af uthor: Thierry Reding <treding@nvidia.com> Date: Wed Dec 10 11:38:49 2014 +0100 drm: Zero out DRM object memory upon cleanup we will use the eDP encoder during destroying it. Fix this by calling drm_encoder_cleanup() at a point when the encoder is not used any more. This caused a NULL pointer dereference in pps_lock(), I can't see that it caused any other problem. All the other encoders seem to call drm_encoder_cleanup() at a safe place. Signed-off-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Reviewed-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
1 parent c86ea3d commit c8bd0e4

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/gpu/drm/i915/intel_dp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4310,7 +4310,6 @@ void intel_dp_encoder_destroy(struct drm_encoder *encoder)
43104310

43114311
drm_dp_aux_unregister(&intel_dp->aux);
43124312
intel_dp_mst_encoder_cleanup(intel_dig_port);
4313-
drm_encoder_cleanup(encoder);
43144313
if (is_edp(intel_dp)) {
43154314
cancel_delayed_work_sync(&intel_dp->panel_vdd_work);
43164315
/*
@@ -4326,6 +4325,7 @@ void intel_dp_encoder_destroy(struct drm_encoder *encoder)
43264325
intel_dp->edp_notifier.notifier_call = NULL;
43274326
}
43284327
}
4328+
drm_encoder_cleanup(encoder);
43294329
kfree(intel_dig_port);
43304330
}
43314331

0 commit comments

Comments
 (0)