Skip to content

Commit 2fd260f

Browse files
mstsirkinBjorn Helgaas
authored andcommitted
PCI/AER: Remove unused .link_reset() callback
No hardware seems to actually call .link_reset(), and no driver implements it as more than a nop stub. Drop mentions of the callback from everywhere. It's dropped from the documentation as well, but the doc really needs to be updated to reflect reality better (e.g., on PCIe, slot reset is the link reset). This will be done in a later patch. Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
1 parent 7ce7d89 commit 2fd260f

File tree

6 files changed

+3
-50
lines changed

6 files changed

+3
-50
lines changed

Documentation/PCI/pci-error-recovery.txt

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ struct pci_error_handlers
7878
{
7979
int (*error_detected)(struct pci_dev *dev, enum pci_channel_state);
8080
int (*mmio_enabled)(struct pci_dev *dev);
81-
int (*link_reset)(struct pci_dev *dev);
8281
int (*slot_reset)(struct pci_dev *dev);
8382
void (*resume)(struct pci_dev *dev);
8483
};
@@ -104,8 +103,7 @@ if it implements any, it must implement error_detected(). If a callback
104103
is not implemented, the corresponding feature is considered unsupported.
105104
For example, if mmio_enabled() and resume() aren't there, then it
106105
is assumed that the driver is not doing any direct recovery and requires
107-
a slot reset. If link_reset() is not implemented, the card is assumed to
108-
not care about link resets. Typically a driver will want to know about
106+
a slot reset. Typically a driver will want to know about
109107
a slot_reset().
110108

111109
The actual steps taken by a platform to recover from a PCI error
@@ -232,25 +230,9 @@ proceeds to STEP 4 (Slot Reset)
232230

233231
STEP 3: Link Reset
234232
------------------
235-
The platform resets the link, and then calls the link_reset() callback
236-
on all affected device drivers. This is a PCI-Express specific state
233+
The platform resets the link. This is a PCI-Express specific step
237234
and is done whenever a non-fatal error has been detected that can be
238-
"solved" by resetting the link. This call informs the driver of the
239-
reset and the driver should check to see if the device appears to be
240-
in working condition.
241-
242-
The driver is not supposed to restart normal driver I/O operations
243-
at this point. It should limit itself to "probing" the device to
244-
check its recoverability status. If all is right, then the platform
245-
will call resume() once all drivers have ack'd link_reset().
246-
247-
Result codes:
248-
(identical to STEP 3 (MMIO Enabled)
249-
250-
The platform then proceeds to either STEP 4 (Slot Reset) or STEP 5
251-
(Resume Operations).
252-
253-
>>> The current powerpc implementation does not implement this callback.
235+
"solved" by resetting the link.
254236

255237
STEP 4: Slot Reset
256238
------------------

drivers/infiniband/hw/hfi1/pcie.c

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -598,15 +598,6 @@ pci_slot_reset(struct pci_dev *pdev)
598598
return PCI_ERS_RESULT_CAN_RECOVER;
599599
}
600600

601-
static pci_ers_result_t
602-
pci_link_reset(struct pci_dev *pdev)
603-
{
604-
struct hfi1_devdata *dd = pci_get_drvdata(pdev);
605-
606-
dd_dev_info(dd, "HFI1 link_reset function called, ignored\n");
607-
return PCI_ERS_RESULT_CAN_RECOVER;
608-
}
609-
610601
static void
611602
pci_resume(struct pci_dev *pdev)
612603
{
@@ -625,7 +616,6 @@ pci_resume(struct pci_dev *pdev)
625616
const struct pci_error_handlers hfi1_pci_err_handler = {
626617
.error_detected = pci_error_detected,
627618
.mmio_enabled = pci_mmio_enabled,
628-
.link_reset = pci_link_reset,
629619
.slot_reset = pci_slot_reset,
630620
.resume = pci_resume,
631621
};

drivers/infiniband/hw/qib/qib_pcie.c

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -682,13 +682,6 @@ qib_pci_slot_reset(struct pci_dev *pdev)
682682
return PCI_ERS_RESULT_CAN_RECOVER;
683683
}
684684

685-
static pci_ers_result_t
686-
qib_pci_link_reset(struct pci_dev *pdev)
687-
{
688-
qib_devinfo(pdev, "QIB link_reset function called, ignored\n");
689-
return PCI_ERS_RESULT_CAN_RECOVER;
690-
}
691-
692685
static void
693686
qib_pci_resume(struct pci_dev *pdev)
694687
{
@@ -707,7 +700,6 @@ qib_pci_resume(struct pci_dev *pdev)
707700
const struct pci_error_handlers qib_pci_err_handler = {
708701
.error_detected = qib_pci_error_detected,
709702
.mmio_enabled = qib_pci_mmio_enabled,
710-
.link_reset = qib_pci_link_reset,
711703
.slot_reset = qib_pci_slot_reset,
712704
.resume = qib_pci_resume,
713705
};

drivers/media/pci/ngene/ngene-cards.c

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -781,12 +781,6 @@ static pci_ers_result_t ngene_error_detected(struct pci_dev *dev,
781781
return PCI_ERS_RESULT_CAN_RECOVER;
782782
}
783783

784-
static pci_ers_result_t ngene_link_reset(struct pci_dev *dev)
785-
{
786-
printk(KERN_INFO DEVICE_NAME ": link reset\n");
787-
return 0;
788-
}
789-
790784
static pci_ers_result_t ngene_slot_reset(struct pci_dev *dev)
791785
{
792786
printk(KERN_INFO DEVICE_NAME ": slot reset\n");
@@ -800,7 +794,6 @@ static void ngene_resume(struct pci_dev *dev)
800794

801795
static const struct pci_error_handlers ngene_errors = {
802796
.error_detected = ngene_error_detected,
803-
.link_reset = ngene_link_reset,
804797
.slot_reset = ngene_slot_reset,
805798
.resume = ngene_resume,
806799
};

drivers/misc/genwqe/card_base.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1336,7 +1336,6 @@ static int genwqe_sriov_configure(struct pci_dev *dev, int numvfs)
13361336
static struct pci_error_handlers genwqe_err_handler = {
13371337
.error_detected = genwqe_err_error_detected,
13381338
.mmio_enabled = genwqe_err_result_none,
1339-
.link_reset = genwqe_err_result_none,
13401339
.slot_reset = genwqe_err_slot_reset,
13411340
.resume = genwqe_err_resume,
13421341
};

include/linux/pci.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -678,9 +678,6 @@ struct pci_error_handlers {
678678
/* MMIO has been re-enabled, but not DMA */
679679
pci_ers_result_t (*mmio_enabled)(struct pci_dev *dev);
680680

681-
/* PCI Express link has been reset */
682-
pci_ers_result_t (*link_reset)(struct pci_dev *dev);
683-
684681
/* PCI slot has been reset */
685682
pci_ers_result_t (*slot_reset)(struct pci_dev *dev);
686683

0 commit comments

Comments
 (0)