diff options
author | Dave Jiang <dave.jiang@intel.com> | 2022-05-12 03:01:13 +0300 |
---|---|---|
committer | Vinod Koul <vkoul@kernel.org> | 2022-05-16 15:49:29 +0300 |
commit | 9120c879d28873829dfa2f511c68162d52540e6a (patch) | |
tree | bd1b06a17410dcc2361b1243a8ae4ab59252fc28 | |
parent | cf4ac3fef33883a14131d8925d7edfbdb7d69b68 (diff) | |
download | linux-9120c879d28873829dfa2f511c68162d52540e6a.tar.xz |
dmaengine: idxd: free irq before wq type is reset
Call idxd_wq_free_irq() in the drv_disable_wq() function before
idxd_wq_reset() is called. Otherwise the wq type is reset and the irq does
not get freed.
Fixes: 63c14ae6c161 ("dmaengine: idxd: refactor wq driver enable/disable operations")
Signed-off-by: Dave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/165231367316.986407.11001767338124941736.stgit@djiang5-desk3.ch.intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
-rw-r--r-- | drivers/dma/idxd/device.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/dma/idxd/device.c b/drivers/dma/idxd/device.c index 001a82040e98..c7412f59ffb1 100644 --- a/drivers/dma/idxd/device.c +++ b/drivers/dma/idxd/device.c @@ -1383,9 +1383,9 @@ void drv_disable_wq(struct idxd_wq *wq) idxd_wq_free_resources(wq); idxd_wq_unmap_portal(wq); idxd_wq_drain(wq); + idxd_wq_free_irq(wq); idxd_wq_reset(wq); percpu_ref_exit(&wq->wq_active); - idxd_wq_free_irq(wq); wq->type = IDXD_WQT_NONE; wq->client_count = 0; } |