]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
dmaengine: idxd: Fix leaking event log memory
authorVinicius Costa Gomes <vinicius.gomes@intel.com>
Wed, 21 Jan 2026 18:34:36 +0000 (10:34 -0800)
committerVinod Koul <vkoul@kernel.org>
Wed, 25 Feb 2026 11:09:18 +0000 (16:39 +0530)
During the device remove process, the device is reset, causing the
configuration registers to go back to their default state, which is
zero. As the driver is checking if the event log support was enabled
before deallocating, it will fail if a reset happened before.

Do not check if the support was enabled, the check for 'idxd->evl'
being valid (only allocated if the HW capability is available) is
enough.

Fixes: 244da66cda35 ("dmaengine: idxd: setup event log configuration")
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
Link: https://patch.msgid.link/20260121-idxd-fix-flr-on-kernel-queues-v3-v3-10-7ed70658a9d1@intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/idxd/device.c

index efd7bfccc51fb5183778191e63806ffec7d10304..131138483b87706893c0be6eb75ae94aed9575a1 100644 (file)
@@ -834,10 +834,6 @@ static void idxd_device_evl_free(struct idxd_device *idxd)
        if (!evl)
                return;
 
-       gencfg.bits = ioread32(idxd->reg_base + IDXD_GENCFG_OFFSET);
-       if (!gencfg.evl_en)
-               return;
-
        mutex_lock(&evl->lock);
        gencfg.evl_en = 0;
        iowrite32(gencfg.bits, idxd->reg_base + IDXD_GENCFG_OFFSET);