[PATCH v2 00/10] PCI: leak fixes, removable generic PCI host, assorted stuff

From: Jan Kiszka
Date: Mon Apr 30 2018 - 01:51:19 EST


Changes in v2:
- patch 1: commit message reworking as suggested by Lorenzo
- patch 3-6: split-up as suggested by Bjorn
- patch 8: new
- patch 10: select PCI_DOMAINS from PCI_HOST_GENERIC, rather than
allowing manual choice, as suggested by Lorenzo

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 (10):
PCI: Make pci_get_new_domain_nr() static
PCI: Fix memory leak of devm_pci_alloc_host_bridge()
PCI: Factor out __of_pci_get_host_bridge_resources()
PCI: Add dev parameter to __of_pci_get_host_bridge_resources()
PCI: Replace pr_*() with dev_*() in
__of_pci_get_host_bridge_resources()
PCI: Introduce devm_of_pci_get_host_bridge_resources()
PCI: Convert of_pci_get_host_bridge_resources() users to devm variant
PCI: Deprecate of_pci_get_host_bridge_resources()
PCI: Add support for unbinding the generic PCI host controller
PCI: Enable PCI_DOMAINS along with generic PCI host controller

drivers/pci/dwc/pcie-designware-host.c | 2 +-
drivers/pci/host/Kconfig | 1 +
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 | 105 +++++++++++++++++++++------------
drivers/pci/pci.c | 6 +-
drivers/pci/probe.c | 4 +-
include/linux/of_pci.h | 42 ++++++++++++-
include/linux/pci-ecam.h | 1 +
include/linux/pci.h | 3 -
21 files changed, 149 insertions(+), 73 deletions(-)

--
2.13.6