Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dmaengine: idxd: skip irq free when wq type is not kernel

Skip wq irq resources freeing when wq type is not kernel since the driver
skips the irq alloction during wq enable. Add check in wq type check in
idxd_wq_free_irq() to mirror idxd_wq_request_irq().

Fixes: 63c14ae6c161 ("dmaengine: idxd: refactor wq driver enable/disable operations")
Reported-by: Tony Zu <tony.zhu@intel.com>
Tested-by: Tony Zu <tony.zhu@intel.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/165176310726.2112428.7474366910758522079.stgit@djiang5-desk3.ch.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>

authored by

Dave Jiang and committed by
Vinod Koul
d0ad4238 8e6226f0

+3
+3
drivers/dma/idxd/device.c
··· 1176 1176 struct idxd_device *idxd = wq->idxd; 1177 1177 struct idxd_irq_entry *ie = &wq->ie; 1178 1178 1179 + if (wq->type != IDXD_WQT_KERNEL) 1180 + return; 1181 + 1179 1182 synchronize_irq(ie->vector); 1180 1183 free_irq(ie->vector, ie); 1181 1184 idxd_flush_pending_descs(ie);