Skip to content

Commit 7cfc4ea

Browse files
committed
drm/meson: fix shutdown crash when component not probed
When main component is not probed, by example when the dw-hdmi module is not loaded yet or in probe defer, the following crash appears on shutdown: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000038 ... pc : meson_drv_shutdown+0x24/0x50 lr : platform_drv_shutdown+0x20/0x30 ... Call trace: meson_drv_shutdown+0x24/0x50 platform_drv_shutdown+0x20/0x30 device_shutdown+0x158/0x360 kernel_restart_prepare+0x38/0x48 kernel_restart+0x18/0x68 __do_sys_reboot+0x224/0x250 __arm64_sys_reboot+0x24/0x30 ... Simply check if the priv struct has been allocated before using it. Fixes: fa0c16c ("drm: meson_drv add shutdown function") Reported-by: Stefan Agner <[email protected]> Signed-off-by: Neil Armstrong <[email protected]> Tested-by: Martin Blumenstingl <[email protected]> Reviewed-by: Martin Blumenstingl <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent 7e008b0 commit 7cfc4ea

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

drivers/gpu/drm/meson/meson_drv.c

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -485,11 +485,12 @@ static int meson_probe_remote(struct platform_device *pdev,
485485
static void meson_drv_shutdown(struct platform_device *pdev)
486486
{
487487
struct meson_drm *priv = dev_get_drvdata(&pdev->dev);
488-
struct drm_device *drm = priv->drm;
489488

490-
DRM_DEBUG_DRIVER("\n");
491-
drm_kms_helper_poll_fini(drm);
492-
drm_atomic_helper_shutdown(drm);
489+
if (!priv)
490+
return;
491+
492+
drm_kms_helper_poll_fini(priv->drm);
493+
drm_atomic_helper_shutdown(priv->drm);
493494
}
494495

495496
static int meson_drv_probe(struct platform_device *pdev)

0 commit comments

Comments
 (0)