]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
PCI/P2PDMA: Release per-CPU pgmap ref when vm_insert_page() fails
authorHou Tao <houtao1@huawei.com>
Sat, 20 Dec 2025 04:04:34 +0000 (12:04 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 8 Jan 2026 15:27:50 +0000 (09:27 -0600)
commit6220694c52a5a04102b48109e4f24e958b559bd3
treed1a26cdffe40d5d2e9362e5263830143db3fac15
parent8f0b4cce4481fb22653697cced8d0d04027cb1e8
PCI/P2PDMA: Release per-CPU pgmap ref when vm_insert_page() fails

When vm_insert_page() fails in p2pmem_alloc_mmap(), p2pmem_alloc_mmap()
doesn't invoke percpu_ref_put() to free the per-CPU ref of pgmap acquired
after gen_pool_alloc_owner(), and memunmap_pages() will hang forever when
trying to remove the PCI device.

Fix it by adding the missed percpu_ref_put().

Fixes: 7e9c7ef83d78 ("PCI/P2PDMA: Allow userspace VMA allocations through sysfs")
Signed-off-by: Hou Tao <houtao1@huawei.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Logan Gunthorpe <logang@deltatee.com>
Reviewed-by: Alistair Popple <apopple@nvidia.com>
Link: https://patch.msgid.link/20251220040446.274991-2-houtao@huaweicloud.com
drivers/pci/p2pdma.c