Re: [PATCH 02/11] drm/panthor: Keep the reset work disabled until everything is initialized
From: Liviu Dudau
Date: Fri Jun 26 2026 - 05:13:35 EST
On Thu, Jun 25, 2026 at 02:40:28PM +0200, Boris Brezillon wrote:
> The reset work will sub-component reset helpers, which might not be
> ready if the reset happens during initialization, leading to NULL
> pointer dereferences or worse.
>
> Avoid that by keeping the reset work disabled while we're initializing
> those sub-components.
>
> Fixes: 5fe909cae118 ("drm/panthor: Add the device logical block")
> Reported-by: sashiko-bot@xxxxxxxxxx
> Closes: https://sashiko.dev/#/patchset/20260625-panthor-signal-from-irq-v5-0-8836a74e0ef9@xxxxxxxxxxxxx?part=4
> Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx>
Reviewed-by: Liviu Dudau <liviu.dudau@xxxxxxx>
Best regards,
Liviu
> ---
> drivers/gpu/drm/panthor/panthor_device.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/panthor/panthor_device.c b/drivers/gpu/drm/panthor/panthor_device.c
> index bd417d6ae8c0..0b25abebb803 100644
> --- a/drivers/gpu/drm/panthor/panthor_device.c
> +++ b/drivers/gpu/drm/panthor/panthor_device.c
> @@ -207,6 +207,7 @@ int panthor_device_init(struct panthor_device *ptdev)
> *dummy_page_virt = 1;
>
> INIT_WORK(&ptdev->reset.work, panthor_device_reset_work);
> + disable_work(&ptdev->reset.work);
> ptdev->reset.wq = alloc_ordered_workqueue("panthor-reset-wq", 0);
> if (!ptdev->reset.wq)
> return -ENOMEM;
> @@ -285,6 +286,9 @@ int panthor_device_init(struct panthor_device *ptdev)
>
> panthor_gem_init(ptdev);
>
> + /* Now that everything is initialized, we can enable the reset work. */
> + enable_work(&ptdev->reset.work);
> +
> /* ~3 frames */
> pm_runtime_set_autosuspend_delay(ptdev->base.dev, 50);
> pm_runtime_use_autosuspend(ptdev->base.dev);
>
> --
> 2.54.0
>
--
====================
| I would like to |
| fix the world, |
| but they're not |
| giving me the |
\ source code! /
---------------
¯\_(ツ)_/¯