Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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 <sungho.kim@furiosa.ai>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
Link: https://patch.msgid.link/20250820105714.2939896-1-sungho.kim@furiosa.ai

authored by

Sungho Kim and committed by
Bjorn Helgaas
6238784e 8f5ae30d

+1 -1
+1 -1
drivers/pci/p2pdma.c
··· 360 360 pages_free: 361 361 devm_memunmap_pages(&pdev->dev, pgmap); 362 362 pgmap_free: 363 - devm_kfree(&pdev->dev, pgmap); 363 + devm_kfree(&pdev->dev, p2p_pgmap); 364 364 return error; 365 365 } 366 366 EXPORT_SYMBOL_GPL(pci_p2pdma_add_resource);