Prevent userspace accesses to the DRM device from causing
use-after-frees by unplugging the device before we remove it. This
causes any further userspace accesses to result in an error without
further calls into this driver's internals.

Fixes: d76271d22694 ("drm: xlnx: DRM/KMS driver for Xilinx ZynqMP DisplayPort 
Subsystem")
Closes: 
https://lore.kernel.org/dri-devel/4d8f4c9b-2efb-4774-9a37-2f257f79b...@linux.dev/
Signed-off-by: Sean Anderson <sean.ander...@linux.dev>
---
Thanks to Maxime for pointing out the correct function to use here.

Changes in v6:
- New

 drivers/gpu/drm/xlnx/zynqmp_kms.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/xlnx/zynqmp_kms.c 
b/drivers/gpu/drm/xlnx/zynqmp_kms.c
index bd1368df7870..4556af2faa0f 100644
--- a/drivers/gpu/drm/xlnx/zynqmp_kms.c
+++ b/drivers/gpu/drm/xlnx/zynqmp_kms.c
@@ -536,7 +536,7 @@ void zynqmp_dpsub_drm_cleanup(struct zynqmp_dpsub *dpsub)
 {
        struct drm_device *drm = &dpsub->drm->dev;
 
-       drm_dev_unregister(drm);
+       drm_dev_unplug(drm);
        drm_atomic_helper_shutdown(drm);
        drm_encoder_cleanup(&dpsub->drm->encoder);
        drm_kms_helper_poll_fini(drm);
-- 
2.35.1.1320.gc452695387.dirty

Reply via email to