]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
PCI: Export pci_dev_lock()
authorNiklas Schnelle <schnelle@linux.ibm.com>
Thu, 17 Mar 2022 15:35:02 +0000 (12:35 -0300)
committerPaolo Pisati <paolo.pisati@canonical.com>
Tue, 22 Mar 2022 16:58:04 +0000 (17:58 +0100)
BugLink: https://bugs.launchpad.net/bugs/1959532
Commit e3a9b1212b9d ("PCI: Export pci_dev_trylock() and pci_dev_unlock()")
already exported pci_dev_trylock()/pci_dev_unlock() however in some
circumstances such as during error recovery it makes sense to block
waiting to get full access to the device so also export pci_dev_lock().

Link: https://lore.kernel.org/all/20210928181014.GA713179@bhelgaas/
Acked-by: Pierre Morel <pmorel@linux.ibm.com>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
(cherry picked from commit dfd5bb23ad75bdabde89ac3166705a450bf16acb)
Signed-off-by: Patricia Domingues <patricia.domingues@canonical.com>
Acked-by: Tim Gardner <tim.gardner@canonical.com>
Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com>
drivers/pci/pci.c
include/linux/pci.h

index 9dbf92a7f5aa6bf75e129730f654ceea49d4065a..9cdbb35dd09026ff801ab51c67a70743de85a422 100644 (file)
@@ -5092,12 +5092,13 @@ static int pci_reset_bus_function(struct pci_dev *dev, bool probe)
        return pci_parent_bus_reset(dev, probe);
 }
 
-static void pci_dev_lock(struct pci_dev *dev)
+void pci_dev_lock(struct pci_dev *dev)
 {
        pci_cfg_access_lock(dev);
        /* block PM suspend, driver probe, etc. */
        device_lock(&dev->dev);
 }
+EXPORT_SYMBOL_GPL(pci_dev_lock);
 
 /* Return 1 on successful lock, 0 on contention */
 int pci_dev_trylock(struct pci_dev *dev)
index 72821c0232391d5ba084867ca486c0954587b2dd..84890df788b29654b83b52f8cfa6be7041642573 100644 (file)
@@ -1677,6 +1677,7 @@ void pci_cfg_access_lock(struct pci_dev *dev);
 bool pci_cfg_access_trylock(struct pci_dev *dev);
 void pci_cfg_access_unlock(struct pci_dev *dev);
 
+void pci_dev_lock(struct pci_dev *dev);
 int pci_dev_trylock(struct pci_dev *dev);
 void pci_dev_unlock(struct pci_dev *dev);