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: [email protected]
> Closes: 
> https://sashiko.dev/#/patchset/[email protected]?part=4
> Signed-off-by: Boris Brezillon <[email protected]>

Reviewed-by: Liviu Dudau <[email protected]>

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!  /
  ---------------
    ¯\_(ツ)_/¯

Reply via email to