From 39d1c645bb99d8bd7e6f5b0183b192f30c88d917 Mon Sep 17 00:00:00 2001 From: Bjorn Helgaas Date: Tue, 13 Oct 2026 17:04:20 -0500 Subject: [PATCH] PCI: Expose devm_pci_alloc_host_bridge_release() devm_pci_alloc_host_bridge() allocates a struct pci_host_bridge and also parses device tree resources and claims them. There are drivers, e.g., pcie-iproc-bcma.c, that need to allocate a pci_host_bridge but do not need device tree resources. Expose devm_pci_alloc_host_bridge_release() so they can avoid the device tree parts by calling pci_alloc_host_bridge() directly and adding the devm release function manually. [bhelgaas: add EXPORT_SYMBOL] Signed-off-by: Bjorn Helgaas Signed-off-by: Manivannan Sadhasivam Reviewed-by: Manivannan Sadhasivam Link: https://patch.msgid.link/20261013220421.1588051-2-bhelgaas@google.com --- drivers/pci/pci.h | 1 + drivers/pci/probe.c | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index ba3c3fddddc2..5e21cd29cc7c 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -502,6 +502,7 @@ enum pci_bar_type { pci_bar_mem64, /* A 64-bit memory BAR */ }; +void devm_pci_alloc_host_bridge_release(void *data); struct device *pci_get_host_bridge_device(struct pci_dev *dev); void pci_put_host_bridge_device(struct device *dev); diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 27008e2ea5af..2fb9341090d6 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -696,10 +696,11 @@ struct pci_host_bridge *pci_alloc_host_bridge(size_t priv) } EXPORT_SYMBOL(pci_alloc_host_bridge); -static void devm_pci_alloc_host_bridge_release(void *data) +void devm_pci_alloc_host_bridge_release(void *data) { pci_free_host_bridge(data); } +EXPORT_SYMBOL(devm_pci_alloc_host_bridge_release); struct pci_host_bridge *devm_pci_alloc_host_bridge(struct device *dev, size_t priv)