linux-stable/drivers/accel/ivpu
Jacek Lawrynowicz d43e11d9c7 accel/ivpu: Fix deadlock in context_xa
commit fd7726e759 upstream.

ivpu_device->context_xa is locked both in kernel thread and IRQ context.
It requires XA_FLAGS_LOCK_IRQ flag to be passed during initialization
otherwise the lock could be acquired from a thread and interrupted by
an IRQ that locks it for the second time causing the deadlock.

This deadlock was reported by lockdep and observed in internal tests.

Fixes: 35b137630f ("accel/ivpu: Introduce a new DRM driver for Intel VPU")
Cc: <stable@vger.kernel.org> # v6.3+
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240402104929.941186-9-jacek.lawrynowicz@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-04-17 11:19:34 +02:00
..
Kconfig accel/ivpu: ivpu_ipc needs GENERIC_ALLOCATOR 2023-06-06 14:19:53 +02:00
Makefile accel/ivpu: Add initial support for VPU 4 2023-08-09 13:55:21 +02:00
TODO
ivpu_debugfs.c accel/ivpu: Add fw_name file to debugfs 2023-07-07 09:33:28 +02:00
ivpu_debugfs.h accel/ivpu: Initial debugfs support 2023-07-07 09:33:13 +02:00
ivpu_drv.c accel/ivpu: Fix deadlock in context_xa 2024-04-17 11:19:34 +02:00
ivpu_drv.h accel/ivpu: Print information about used workarounds 2023-12-20 17:01:54 +01:00
ivpu_fw.c Revert "accel/ivpu: Use cached buffers for FW loading" 2023-10-19 06:51:51 +02:00
ivpu_fw.h accel/ivpu: Print firmware name and version 2023-07-07 09:33:26 +02:00
ivpu_fw_log.c accel/ivpu: Add firmware tracing support 2023-07-07 09:33:20 +02:00
ivpu_fw_log.h accel/ivpu: Add firmware tracing support 2023-07-07 09:33:20 +02:00
ivpu_gem.c Linux 6.5-rc7 2023-08-24 07:26:06 +10:00
ivpu_gem.h Revert "accel/ivpu: Use cached buffers for FW loading" 2023-10-19 06:51:51 +02:00
ivpu_hw.h accel/ivpu: Don't enter d0i3 during FLR 2023-10-19 06:48:05 +02:00
ivpu_hw_37xx.c accel/ivpu: Force snooping for MMU writes 2024-03-01 13:34:55 +01:00
ivpu_hw_37xx_reg.h accel/ivpu: Use generation based function and registers names 2023-08-09 13:42:16 +02:00
ivpu_hw_40xx.c accel/ivpu: Don't enable any tiles by default on VPU40xx 2024-03-01 13:35:01 +01:00
ivpu_hw_40xx_reg.h accel/ivpu/40xx: Ensure clock resource ownership Ack before Power-Up 2023-09-27 07:40:23 +02:00
ivpu_hw_reg_io.h
ivpu_ipc.c accel/ivpu: Do not use wait event interruptible 2023-09-27 07:39:46 +02:00
ivpu_ipc.h accel/ivpu: Fix IPC buffer header status field value 2023-03-24 10:52:20 +01:00
ivpu_job.c Merge drm/drm-next into drm-misc-next 2023-06-19 16:33:14 +02:00
ivpu_job.h
ivpu_jsm_msg.c accel/ivpu: refactor deprecated strncpy 2023-08-25 11:09:40 +02:00
ivpu_jsm_msg.h
ivpu_mmu.c accel/ivpu: Force snooping for MMU writes 2024-03-01 13:34:55 +01:00
ivpu_mmu.h
ivpu_mmu_context.c accel/ivpu: Extend address range for MMU mmap 2023-10-19 08:01:20 +02:00
ivpu_mmu_context.h accel/ivpu: Rename and cleanup MMU600 page tables 2023-06-08 07:53:51 +02:00
ivpu_pm.c accel/ivpu: Don't enter d0i3 during FLR 2023-10-19 06:48:05 +02:00
ivpu_pm.h accel/ivpu: Add debugfs files for testing device reset 2023-07-07 09:33:23 +02:00
vpu_boot_api.h
vpu_jsm_api.h