diff options
author | Dave Jiang <dave.jiang@intel.com> | 2021-04-20 21:46:51 +0300 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2021-04-23 20:38:45 +0300 |
commit | 5b0c68c473a131c2acb21abad44b0047b200e185 (patch) | |
tree | 3625599dc883405aa964bf254e95a8e93ebfa17a /drivers/dma/idxd/irq.c | |
parent | cf5f86a7d47df149857ba2fb72f9c6c9da46af2e (diff) | |
download | linux-5b0c68c473a131c2acb21abad44b0047b200e185.tar.xz |
dmaengine: idxd: support reporting of halt interrupt
Unmask the halt error interrupt so it gets reported to the interrupt
handler. When halt state interrupt is received, quiesce the kernel
WQs and unmap the portals to stop submission.
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/161894441167.3202472.9485946398140619501.stgit@djiang5-desk3.ch.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/dma/idxd/irq.c')
-rw-r--r-- | drivers/dma/idxd/irq.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/dma/idxd/irq.c b/drivers/dma/idxd/irq.c index fc0781e3f36d..43eea5c9cbd4 100644 --- a/drivers/dma/idxd/irq.c +++ b/drivers/dma/idxd/irq.c @@ -202,6 +202,8 @@ static int process_misc_interrupts(struct idxd_device *idxd, u32 cause) queue_work(idxd->wq, &idxd->work); } else { spin_lock_bh(&idxd->dev_lock); + idxd_wqs_quiesce(idxd); + idxd_wqs_unmap_portal(idxd); idxd_device_wqs_clear_state(idxd); dev_err(&idxd->pdev->dev, "idxd halted, need %s.\n", |