Skip to contentSkip to conversation

PCI/P2PDMA: Fix freeing dev_pagemap on error

PATCH In review Keith Busch 2 participants 2 messages Oct 12, 2018

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 PCI/P2PDMA: Fix freeing dev_pagemap on error

The devres_free() API is only to be used after the resource has been unlinked from the device tracking it. Calling this functino directly will hit a kernel BUG_ON. This patch fixes this to use the managed resource release function, devm_kfree().

Fixes 1380472e7b855 ("PCI/P2PDMA: Support peer-to-peer memory")
Cc Logan Gunthorpe <[email protected]>

---
v1 -> v2:

Fixed compile breaking typo in code

 drivers/pci/p2pdma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/pci/p2pdma.c +1 -1
index da66c7e31730..9c56a10eff15 100644
@@ -222,7 +222,7 @@ int pci_p2pdma_add_resource(struct pci_dev *pdev, int bar, size_t size,
 	return 0;
 
 pgmap_free:
-	devres_free(pgmap);
+	devm_kfree(&pdev->dev, pgmap);
 	return error;
 }
 EXPORT_SYMBOL_GPL(pci_p2pdma_add_resource);
Signature · 1 line
2.14.4
#1 lore raw
Quoted 8 lines · Keith Busch

The devres_free() API is only to be used after the resource has been unlinked from the device tracking it. Calling this functino directly will hit a kernel BUG_ON. This patch fixes this to use the managed resource release function, devm_kfree().

Fixes 1380472e7b855 ("PCI/P2PDMA: Support peer-to-peer memory")
Cc Logan Gunthorpe <[email protected]>

I folded this fix into the original 1380472e7b855 commit (now 31fd98513249 ("PCI/P2PDMA: Support peer-to-peer memory"), thanks!

Quoted 24 lines

---
v1 -> v2:

Fixed compile breaking typo in code

 drivers/pci/p2pdma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/pci/p2pdma.c +1 -1
index da66c7e31730..9c56a10eff15 100644
@@ -222,7 +222,7 @@ int pci_p2pdma_add_resource(struct pci_dev *pdev, int bar, size_t size,
 	return 0;
 
 pgmap_free:
-	devres_free(pgmap);
+	devm_kfree(&pdev->dev, pgmap);
 	return error;
 }
 EXPORT_SYMBOL_GPL(pci_p2pdma_add_resource);
Signature · 1 line
2.14.4