Skip to content

Commit e312282

Browse files
davejiangvinodkoul
authored andcommitted
dmaengine: idxd: fix misc interrupt handler thread unmasking
Fix unmasking of misc interrupt handler when completing normal. It exits early and skips the unmasking with the current implementation. Fix to unmask interrupt when exiting normally. Fixes: bfe1d56 ("dmaengine: idxd: Init and probe for Intel data accelerators") Signed-off-by: Dave Jiang <[email protected]> Link: https://lore.kernel.org/r/159311256528.855.11527922406329728512.stgit@djiang5-desk3.ch.intel.com Signed-off-by: Vinod Koul <[email protected]>
1 parent da32b28 commit e312282

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

drivers/dma/idxd/irq.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ irqreturn_t idxd_misc_thread(int vec, void *data)
141141

142142
iowrite32(cause, idxd->reg_base + IDXD_INTCAUSE_OFFSET);
143143
if (!err)
144-
return IRQ_HANDLED;
144+
goto out;
145145

146146
gensts.bits = ioread32(idxd->reg_base + IDXD_GENSTATS_OFFSET);
147147
if (gensts.state == IDXD_DEVICE_STATE_HALT) {
@@ -162,6 +162,7 @@ irqreturn_t idxd_misc_thread(int vec, void *data)
162162
spin_unlock_bh(&idxd->dev_lock);
163163
}
164164

165+
out:
165166
idxd_unmask_msix_vector(idxd, irq_entry->id);
166167
return IRQ_HANDLED;
167168
}

0 commit comments

Comments
 (0)