dmaengine: idxd: fix resource leak on dmaengine driver disable
[platform/kernel/linux-rpi.git] / drivers / dma / idxd / device.c
index 83a5ff2..419b206 100644 (file)
@@ -427,7 +427,6 @@ void idxd_wq_quiesce(struct idxd_wq *wq)
 {
        percpu_ref_kill(&wq->wq_active);
        wait_for_completion(&wq->wq_dead);
-       percpu_ref_exit(&wq->wq_active);
 }
 
 /* Device control bits */
@@ -584,6 +583,8 @@ void idxd_device_reset(struct idxd_device *idxd)
        spin_lock(&idxd->dev_lock);
        idxd_device_clear_state(idxd);
        idxd->state = IDXD_DEV_DISABLED;
+       idxd_unmask_error_interrupts(idxd);
+       idxd_msix_perm_setup(idxd);
        spin_unlock(&idxd->dev_lock);
 }