Message ID | 163517405099.3484556.12521975053711345244.stgit@djiang5-desk3.ch.intel.com (mailing list archive) |
---|---|
State | Accepted |
Commit | a3e340c1574b6679f5b333221284d0959095da52 |
Headers | show |
Series | [v2] dmaengine: idxd: fix resource leak on dmaengine driver disable | expand |
On 25-10-21, 08:01, Dave Jiang wrote: > The wq resources needs to be released before the kernel type is reset by > __drv_disable_wq(). With dma channels unregistered and wq quiesced, all the > wq resources for dmaengine can be freed. There is no need to wait until wq > is disabled. With the wq->type being reset to "unknown", the driver is > skipping the freeing of the resources. Applied, thanks
diff --git a/drivers/dma/idxd/dma.c b/drivers/dma/idxd/dma.c index b90b085d18cf..c39e9483206a 100644 --- a/drivers/dma/idxd/dma.c +++ b/drivers/dma/idxd/dma.c @@ -329,10 +329,9 @@ static void idxd_dmaengine_drv_remove(struct idxd_dev *idxd_dev) mutex_lock(&wq->wq_lock); idxd_wq_quiesce(wq); idxd_unregister_dma_channel(wq); + idxd_wq_free_resources(wq); __drv_disable_wq(wq); percpu_ref_exit(&wq->wq_active); - idxd_wq_free_resources(wq); - wq->type = IDXD_WQT_NONE; mutex_unlock(&wq->wq_lock); }