dmaengine: idxd: skip irq free when wq type is not kernel
authorDave Jiang <dave.jiang@intel.com>
Thu, 5 May 2022 15:05:07 +0000 (08:05 -0700)
committerVinod Koul <vkoul@kernel.org>
Mon, 16 May 2022 12:59:13 +0000 (18:29 +0530)
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>
drivers/dma/idxd/device.c

index dee5e4f..8b1f859 100644 (file)
@@ -1176,6 +1176,9 @@ void idxd_wq_free_irq(struct idxd_wq *wq)
        struct idxd_device *idxd = wq->idxd;
        struct idxd_irq_entry *ie = &wq->ie;
 
+       if (wq->type != IDXD_WQT_KERNEL)
+               return;
+
        synchronize_irq(ie->vector);
        free_irq(ie->vector, ie);
        idxd_flush_pending_descs(ie);