]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
dmaengine: idxd: Fix possible invalid memory access after FLR
authorVinicius Costa Gomes <vinicius.gomes@intel.com>
Wed, 21 Jan 2026 18:34:29 +0000 (10:34 -0800)
committerVinod Koul <vkoul@kernel.org>
Wed, 25 Feb 2026 11:09:17 +0000 (16:39 +0530)
In the case that the first Function Level Reset (FLR) concludes
correctly, but in the second FLR the scratch area for the saved
configuration cannot be allocated, it's possible for a invalid memory
access to happen.

Always set the deallocated scratch area to NULL after FLR completes.

Fixes: 98d187a98903 ("dmaengine: idxd: Enable Function Level Reset (FLR) for halt")
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-3-7ed70658a9d1@intel.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/idxd/init.c

index 1c3f9bc7364b515f79ba4e2050410a41a09d5d4a..f1cfc7790d950d1c6300505913a41160d6cec8bf 100644 (file)
@@ -1146,6 +1146,7 @@ static void idxd_reset_done(struct pci_dev *pdev)
        }
 out:
        kfree(idxd->idxd_saved);
+       idxd->idxd_saved = NULL;
 }
 
 static const struct pci_error_handlers idxd_error_handler = {