From: Sungho Kim Date: Wed, 20 Aug 2025 10:57:14 +0000 (+0900) Subject: PCI/P2PDMA: Fix incorrect pointer usage in devm_kfree() call X-Git-Tag: v6.18-rc1~60^2~26^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6238784e502b6a9fbeb3a6b77284b29baa4135cc;p=thirdparty%2Fkernel%2Flinux.git PCI/P2PDMA: Fix incorrect pointer usage in devm_kfree() call The error handling path in pci_p2pdma_add_resource() contains a bug in its `pgmap_free` label. Memory is allocated for the `p2p_pgmap` struct, and the pointer is stored in `p2p_pgmap`. However, the error path calls devm_kfree() with `pgmap`, which is a pointer to a member field within the `p2p_pgmap` struct, not the base pointer of the allocation. Correct the bug by passing the correct base pointer, `p2p_pgmap`, to devm_kfree(). Signed-off-by: Sungho Kim Signed-off-by: Bjorn Helgaas Reviewed-by: Logan Gunthorpe Link: https://patch.msgid.link/20250820105714.2939896-1-sungho.kim@furiosa.ai --- diff --git a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c index da5657a020074..1cb5e423eed4f 100644 --- a/drivers/pci/p2pdma.c +++ b/drivers/pci/p2pdma.c @@ -360,7 +360,7 @@ int pci_p2pdma_add_resource(struct pci_dev *pdev, int bar, size_t size, pages_free: devm_memunmap_pages(&pdev->dev, pgmap); pgmap_free: - devm_kfree(&pdev->dev, pgmap); + devm_kfree(&pdev->dev, p2p_pgmap); return error; } EXPORT_SYMBOL_GPL(pci_p2pdma_add_resource);