PCI: Simplify disconnected marking
authorLukas Wunner <lukas@wunner.de>
Sun, 19 Aug 2018 14:29:00 +0000 (16:29 +0200)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 17 Sep 2018 21:34:35 +0000 (16:34 -0500)
commita50ac6bfd6042b16e0de4ac3264c407e678c9b10
treef0de00cd4cbb010349c3113f87747b41485817bb
parent7876320f88802b22d4e2daf7eb027dd14175a0f8
PCI: Simplify disconnected marking

Commit 89ee9f768003 ("PCI: Add device disconnected state") iterates over
the devices on a parent bus, marks each as disconnected, then marks
each device's children as disconnected using pci_walk_bus().

The same can be achieved more succinctly by calling pci_walk_bus() on
the parent bus.  Moreover, this does not need to wait until acquiring
pci_lock_rescan_remove(), so move it out of that critical section.

The critical section in err.c contains a pci_dev_get() / pci_dev_put()
pair which was apparently copy-pasted from pciehp_pci.c.  In the latter
it serves the purpose of holding the struct pci_dev in place until the
Command register is updated.  err.c doesn't do anything like that, hence
the pair is unnecessary.  Remove it.

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Cc: Keith Busch <keith.busch@intel.com>
Cc: Oza Pawandeep <poza@codeaurora.org>
Cc: Sinan Kaya <okaya@kernel.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
drivers/pci/hotplug/pciehp_pci.c
drivers/pci/pcie/err.c