]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm: zynqmp_kms: Unplug DRM device before removal
authorSean Anderson <sean.anderson@linux.dev>
Fri, 9 Aug 2024 19:35:53 +0000 (15:35 -0400)
committerTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Wed, 30 Oct 2024 12:17:33 +0000 (14:17 +0200)
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-2f257f79b2c9@linux.dev/
Signed-off-by: Sean Anderson <sean.anderson@linux.dev>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240809193600.3360015-2-sean.anderson@linux.dev
drivers/gpu/drm/xlnx/zynqmp_kms.c

index 2452c2f09161f3019773f6b6f071f46985022ba7..0812dd6bad7ccfc0b5c2d922e77f3b9f0bfaaa0b 100644 (file)
@@ -538,7 +538,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);