PCI: Add pci_reset_bus_function() Secondary Bus Reset interface
authorRaphael Norwitz <raphael.norwitz@nutanix.com>
Thu, 8 Apr 2021 18:23:40 +0000 (18:23 +0000)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 24 May 2021 22:30:02 +0000 (17:30 -0500)
commit0dad3ce523c2917b1912fbde047207533e9f1eeb
tree8b8dbe7ecae51567629a33c6eeaa751762f66880
parent6efb943b8616ec53a5e444193dccf1af9ad627b5
PCI: Add pci_reset_bus_function() Secondary Bus Reset interface

pci_parent_bus_reset() resets a device by performing a Secondary Bus Reset
on a PCI-to-PCI bridge leading to the device.

pci_dev_reset_slot_function() does the same, except that it uses a hotplug
driver to keep the reset from looking like a hot-remove followed by a
hot-add.

Add a pci_reset_bus_function() wrapper, which attempts the hotplug driver
slot reset and falls back to the parent bus reset if that fails.  This
provides a single interface for performing a Secondary Bus Reset.

[bhelgaas: commit log, don't expose yet]
Suggested-by: Alex Williamson <alex.williamson@redhat.com>
Link: https://lore.kernel.org/r/20210323100625.0021a943@omen.home.shazbot.org/
Link: https://lore.kernel.org/r/20210408182328.12323-1-raphael.norwitz@nutanix.com
Signed-off-by: Amey Narkhede <ameynarkhede03@gmail.com>
Signed-off-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
drivers/pci/pci.c