PCI: Split ->reset_notify() method into ->reset_prepare() and ->reset_done()
The pci_error_handlers->reset_notify() method had a flag to indicate whether to prepare for or clean up after a reset. The prepare and done cases have no shared functionality whatsoever, so split them into separate methods. [bhelgaas: changelog, update locking comments] Link: http://lkml.kernel.org/r/20170601111039.8913-3-hch@lst.de Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
This commit is contained in:

committed by
Bjorn Helgaas

parent
b014e96d1a
commit
775755ed3c
@@ -2348,30 +2348,19 @@ static void fm10k_io_resume(struct pci_dev *pdev)
|
||||
netif_device_attach(netdev);
|
||||
}
|
||||
|
||||
/**
|
||||
* fm10k_io_reset_notify - called when PCI function is reset
|
||||
* @pdev: Pointer to PCI device
|
||||
*
|
||||
* This callback is called when the PCI function is reset such as from
|
||||
* /sys/class/net/<enpX>/device/reset or similar. When prepare is true, it
|
||||
* means we should prepare for a function reset. If prepare is false, it means
|
||||
* the function reset just occurred.
|
||||
*/
|
||||
static void fm10k_io_reset_notify(struct pci_dev *pdev, bool prepare)
|
||||
static void fm10k_io_reset_prepare(struct pci_dev *pdev)
|
||||
{
|
||||
/* warn incase we have any active VF devices */
|
||||
if (pci_num_vf(pdev))
|
||||
dev_warn(&pdev->dev,
|
||||
"PCIe FLR may cause issues for any active VF devices\n");
|
||||
fm10k_prepare_suspend(pci_get_drvdata(pdev));
|
||||
}
|
||||
|
||||
static void fm10k_io_reset_done(struct pci_dev *pdev)
|
||||
{
|
||||
struct fm10k_intfc *interface = pci_get_drvdata(pdev);
|
||||
int err = 0;
|
||||
|
||||
if (prepare) {
|
||||
/* warn incase we have any active VF devices */
|
||||
if (pci_num_vf(pdev))
|
||||
dev_warn(&pdev->dev,
|
||||
"PCIe FLR may cause issues for any active VF devices\n");
|
||||
|
||||
fm10k_prepare_suspend(interface);
|
||||
} else {
|
||||
err = fm10k_handle_resume(interface);
|
||||
}
|
||||
int err = fm10k_handle_resume(interface);
|
||||
|
||||
if (err) {
|
||||
dev_warn(&pdev->dev,
|
||||
@@ -2384,7 +2373,8 @@ static const struct pci_error_handlers fm10k_err_handler = {
|
||||
.error_detected = fm10k_io_error_detected,
|
||||
.slot_reset = fm10k_io_slot_reset,
|
||||
.resume = fm10k_io_resume,
|
||||
.reset_notify = fm10k_io_reset_notify,
|
||||
.reset_prepare = fm10k_io_reset_prepare,
|
||||
.reset_done = fm10k_io_reset_done,
|
||||
};
|
||||
|
||||
static struct pci_driver fm10k_driver = {
|
||||
|
Reference in New Issue
Block a user