@@ -4816,6 +4816,7 @@ EXPORT_SYMBOL_GPL(pci_reset_function);
/**
* pci_reset_function_locked - quiesce and reset a PCI device function
* @dev: PCI device to reset
+ * @reset_type: reset type to apply
*
* Some devices allow an individual function to be reset without affecting
* other functions in the same device. The PCI device must be responsive
@@ -4830,7 +4831,7 @@ EXPORT_SYMBOL_GPL(pci_reset_function);
* Returns 0 if the device function was successfully reset or negative if the
* device doesn't support resetting a single function.
*/
-int pci_reset_function_locked(struct pci_dev *dev)
+int pci_reset_function_locked(struct pci_dev *dev, u32 reset_type)
{
int rc;
@@ -4839,7 +4840,7 @@ int pci_reset_function_locked(struct pci_dev *dev)
pci_dev_save_and_disable(dev);
- rc = __pci_reset_function_locked(dev, PCI_RESET_ANY);
+ rc = __pci_reset_function_locked(dev, reset_type);
pci_dev_restore(dev);
@@ -1167,7 +1167,7 @@ bool pcie_has_flr(struct pci_dev *dev);
int pcie_flr(struct pci_dev *dev);
int __pci_reset_function_locked(struct pci_dev *dev, u32 reset_type);
int pci_reset_function(struct pci_dev *dev, u32 reset_type);
-int pci_reset_function_locked(struct pci_dev *dev);
+int pci_reset_function_locked(struct pci_dev *dev, u32 reset_type);
int pci_try_reset_function(struct pci_dev *dev);
int pci_probe_reset_slot(struct pci_slot *slot);
int pci_probe_reset_bus(struct pci_bus *bus);
Looking to have more control between the users of the API vs. what the API can do internally. The new reset_type tells the PCI core about the bounds of the request. Signed-off-by: Sinan Kaya <okaya@kernel.org> --- drivers/pci/pci.c | 5 +++-- include/linux/pci.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-)