accel/ivpu: Flush pending jobs of device's workqueues
Use flush_work() instead of cancel_work_sync() for driver IRQ workqueues to guarantee that remaining pending work will be handled. This resolves two issues that were encountered where a driver was left in an incorrect state as the bottom-half was canceled: 1. Cancelling context-abort of a job that is still executing and is causing translation faults which is going to cause additional TDRs 2. Cancelling bottom-half of a DCT (duty-cycle throttling) request which will cause a device to not be adjusted to an external frequency request. Fixes: bc3e5f48 ("accel/ivpu: Use workqueue for IRQ handling") Signed-off-by:Maciej Falkowski <maciej.falkowski@linux.intel.com> Reviewed-by:
Lizhi Hou <lizhi.hou@amd.com> Reviewed-by:
Jeff Hugo <jeff.hugo@oss.qualcomm.com> Signed-off-by:
Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com> Link: https://lore.kernel.org/r/20250401155755.4049156-1-maciej.falkowski@linux.intel.com
Loading
Please register or sign in to comment