]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2024 12:53:18 +0000 (13:53 +0100)
[ Upstream commit 2e07c88914fc5289c21820b1aa94f058feb38197 ]

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
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/gpu/drm/xlnx/zynqmp_kms.c

index bd1368df7870341bf13dcf31ad4a3780fd3afff3..4556af2faa0f191ef9da0a359eb81dae8fbe48c1 100644 (file)
@@ -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);