This primarily enables to unbind the generic PCI host controller without leaving lots of memory leaks behind. A previous proposal patch 5 was rejected because of those issues [1]. The fixes have been validated in the Jailhouse setup, where we add and remove a virtual PCI host controller on hypervisor activation/ deactivation, with the help of kmemleak. Besides that, there is tiny PCI API cleanup at the beginning and support for manually enabled PCI domains at the end that enables the Jailhouse scenario. Jan [1] http://lkml.iu.edu/hypermail/linux/kernel/1606.3/00072.html CC: Jingoo Han <jingoohan1@xxxxxxxxx> CC: Joao Pinto <Joao.Pinto@xxxxxxxxxxxx> CC: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> CC: Will Deacon <will.deacon@xxxxxxx> Jan Kiszka (6): PCI: Make pci_get_new_domain_nr static PCI: Fix memory leak of devm_pci_alloc_host_bridge PCI: Introduce devm_of_pci_get_host_bridge_resources PCI: Convert of_pci_get_host_bridge_resources users to devm variant PCI: Add support for unbinding the generic PCI host controller arm: Allow to enable PCI_DOMAINS manually arch/arm/Kconfig | 7 ++- drivers/pci/dwc/pcie-designware-host.c | 2 +- drivers/pci/host/pci-aardvark.c | 5 +- drivers/pci/host/pci-ftpci100.c | 4 +- drivers/pci/host/pci-host-common.c | 13 +++++ drivers/pci/host/pci-host-generic.c | 1 + drivers/pci/host/pci-v3-semi.c | 3 +- drivers/pci/host/pci-versatile.c | 3 +- drivers/pci/host/pci-xgene.c | 3 +- drivers/pci/host/pcie-altera.c | 5 +- drivers/pci/host/pcie-iproc-platform.c | 4 +- drivers/pci/host/pcie-rcar.c | 5 +- drivers/pci/host/pcie-rockchip.c | 4 +- drivers/pci/host/pcie-xilinx-nwl.c | 4 +- drivers/pci/host/pcie-xilinx.c | 4 +- drivers/pci/of.c | 93 ++++++++++++++++++++++------------ drivers/pci/pci.c | 6 +-- drivers/pci/probe.c | 4 +- include/linux/of_pci.h | 14 ++++- include/linux/pci-ecam.h | 1 + include/linux/pci.h | 3 -- 21 files changed, 120 insertions(+), 68 deletions(-) -- 2.13.6