[PATCH] accel/ivpu: Flush pending jobs of device's workqueues

Jacek Lawrynowicz jacek.lawrynowicz at linux.intel.com
Fri Apr 11 09:47:33 UTC 2025


Applied with updated commit message to drm-misc-fixes

On 4/1/2025 5:57 PM, Maciej Falkowski wrote:
> Use flush_work() instead of cancel_work_sync() for driver
> workqueues to guarantee that remaining pending work
> will be handled.
> 
> Fixes: bc3e5f48b7ee ("accel/ivpu: Use workqueue for IRQ handling")
> Signed-off-by: Maciej Falkowski <maciej.falkowski at linux.intel.com>
> ---
>  drivers/accel/ivpu/ivpu_drv.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/accel/ivpu/ivpu_drv.c b/drivers/accel/ivpu/ivpu_drv.c
> index 4fa73189502e..5e3888ff1022 100644
> --- a/drivers/accel/ivpu/ivpu_drv.c
> +++ b/drivers/accel/ivpu/ivpu_drv.c
> @@ -421,9 +421,9 @@ void ivpu_prepare_for_reset(struct ivpu_device *vdev)
>  {
>  	ivpu_hw_irq_disable(vdev);
>  	disable_irq(vdev->irq);
> -	cancel_work_sync(&vdev->irq_ipc_work);
> -	cancel_work_sync(&vdev->irq_dct_work);
> -	cancel_work_sync(&vdev->context_abort_work);
> +	flush_work(&vdev->irq_ipc_work);
> +	flush_work(&vdev->irq_dct_work);
> +	flush_work(&vdev->context_abort_work);
>  	ivpu_ipc_disable(vdev);
>  	ivpu_mmu_disable(vdev);
>  }



More information about the dri-devel mailing list