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: bfe1d56091 ("dmaengine: idxd: Init and probe for Intel data accelerators")
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/159311256528.855.11527922406329728512.stgit@djiang5-desk3.ch.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
This commit is contained in:
parent
da32b28c95
commit
e3122822a7
1 changed files with 2 additions and 1 deletions
|
|
@ -141,7 +141,7 @@ irqreturn_t idxd_misc_thread(int vec, void *data)
|
|||
|
||||
iowrite32(cause, idxd->reg_base + IDXD_INTCAUSE_OFFSET);
|
||||
if (!err)
|
||||
return IRQ_HANDLED;
|
||||
goto out;
|
||||
|
||||
gensts.bits = ioread32(idxd->reg_base + IDXD_GENSTATS_OFFSET);
|
||||
if (gensts.state == IDXD_DEVICE_STATE_HALT) {
|
||||
|
|
@ -162,6 +162,7 @@ irqreturn_t idxd_misc_thread(int vec, void *data)
|
|||
spin_unlock_bh(&idxd->dev_lock);
|
||||
}
|
||||
|
||||
out:
|
||||
idxd_unmask_msix_vector(idxd, irq_entry->id);
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue