Commit ac24a2dc authored by Dave Jiang's avatar Dave Jiang Committed by Vinod Koul
Browse files

dmaengine: idxd: add missing percpu ref put on failure



When enqcmds() fails, exit path is missing a percpu_ref_put(). This can
cause failure on shutdown path when the driver is attempting to quiesce the
wq. Add missing percpu_ref_put() call on the error exit path.

Fixes: 93a40a6d ("dmaengine: idxd: add percpu_ref to descriptor submission path")
Signed-off-by: default avatarDave Jiang <dave.jiang@intel.com>
Link: https://lore.kernel.org/r/162456170168.1121236.7240941044089212312.stgit@djiang5-desk3.ch.intel.com


Signed-off-by: default avatarVinod Koul <vkoul@kernel.org>
parent 53499d1f
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -118,9 +118,11 @@ int idxd_submit_desc(struct idxd_wq *wq, struct idxd_desc *desc)
		 * device is not accepting descriptor at all.
		 */
		rc = enqcmds(portal, desc->hw);
		if (rc < 0)
		if (rc < 0) {
			percpu_ref_put(&wq->wq_active);
			return rc;
		}
	}

	percpu_ref_put(&wq->wq_active);