dmaengine: idxd: make I/O interrupt handler one shot
authorDave Jiang <dave.jiang@intel.com>
Tue, 3 Aug 2021 22:29:30 +0000 (15:29 -0700)
committerVinod Koul <vkoul@kernel.org>
Fri, 6 Aug 2021 13:53:06 +0000 (19:23 +0530)
commitd803c8b9f3f2b8e5c047f2d0a27a9ea3ef91510f
tree3c1829633af7d9a47c0df33ac139aaaae80880e1
parentbd2f4ae5e019efcfadd6b491204fd60adf14f4a3
dmaengine: idxd: make I/O interrupt handler one shot

The interrupt thread handler currently loops forever to process outstanding
completions. This causes either an "irq X: nobody cared" kernel splat or
the NMI watchdog kicks in due to running too long in the function. The irq
thread handler is expected to run again after exiting if there are
interrupts fired while the thread handler is running. So the handler code
can process all the completed I/O in a single pass and exit without losing
the follow on completed I/O.

Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/162802977005.3084234.11836261157026497585.stgit@djiang5-desk3.ch.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/idxd/irq.c