Hi Bjorn, Hi Lukas, This is v2 of my fix for a use-after-free of PCI MMIO resources in the s390 PCI layer. As Bjorn found some redundant pci_bus_add_device() uses and function zero special treatment I've added 3 cleanup patches in addition to the fix itself. These are independent but in my opinion make it easier to see the struct zpci_dev interactions with the common PCI code. If you prefer I can of course split them off. As discussed this version still uses the pci_rescan_remove lock to allow backporting but I'll be looking into adding a more specific resource lock as a follow up. Thanks, Niklas Changes since v1: - Added clean up patches inspired by Bjorn's questions - Removed return at end of function returning void Niklas Schnelle (4): PCI: s390: Fix use-after-free of PCI resources with per-function hotplug s390/pci: only add specific device in zpci_bus_scan_device() s390/pci: remove redundant pci_bus_add_devices() on new bus s390/pci: clean up left over special treatment for function zero arch/s390/pci/pci.c | 39 +++++++++++++-------------------------- arch/s390/pci/pci_bus.c | 16 ++++++---------- arch/s390/pci/pci_bus.h | 3 +-- drivers/pci/bus.c | 21 +++++++++++++++++++++ include/linux/pci.h | 1 + 5 files changed, 42 insertions(+), 38 deletions(-) -- 2.37.2