Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'pci/aer' into next

* pci/aer:
PCI/AER: Remove unused .link_reset() callback

+3 -50
+3 -21
Documentation/PCI/pci-error-recovery.txt
··· 78 78 { 79 79 int (*error_detected)(struct pci_dev *dev, enum pci_channel_state); 80 80 int (*mmio_enabled)(struct pci_dev *dev); 81 - int (*link_reset)(struct pci_dev *dev); 82 81 int (*slot_reset)(struct pci_dev *dev); 83 82 void (*resume)(struct pci_dev *dev); 84 83 }; ··· 103 104 is not implemented, the corresponding feature is considered unsupported. 104 105 For example, if mmio_enabled() and resume() aren't there, then it 105 106 is assumed that the driver is not doing any direct recovery and requires 106 - a slot reset. If link_reset() is not implemented, the card is assumed to 107 - not care about link resets. Typically a driver will want to know about 107 + a slot reset. Typically a driver will want to know about 108 108 a slot_reset(). 109 109 110 110 The actual steps taken by a platform to recover from a PCI error ··· 230 232 231 233 STEP 3: Link Reset 232 234 ------------------ 233 - The platform resets the link, and then calls the link_reset() callback 234 - on all affected device drivers. This is a PCI-Express specific state 235 + The platform resets the link. This is a PCI-Express specific step 235 236 and is done whenever a non-fatal error has been detected that can be 236 - "solved" by resetting the link. This call informs the driver of the 237 - reset and the driver should check to see if the device appears to be 238 - in working condition. 239 - 240 - The driver is not supposed to restart normal driver I/O operations 241 - at this point. It should limit itself to "probing" the device to 242 - check its recoverability status. If all is right, then the platform 243 - will call resume() once all drivers have ack'd link_reset(). 244 - 245 - Result codes: 246 - (identical to STEP 3 (MMIO Enabled) 247 - 248 - The platform then proceeds to either STEP 4 (Slot Reset) or STEP 5 249 - (Resume Operations). 250 - 251 - >>> The current powerpc implementation does not implement this callback. 237 + "solved" by resetting the link. 252 238 253 239 STEP 4: Slot Reset 254 240 ------------------
-10
drivers/infiniband/hw/hfi1/pcie.c
··· 598 598 return PCI_ERS_RESULT_CAN_RECOVER; 599 599 } 600 600 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 - 610 601 static void 611 602 pci_resume(struct pci_dev *pdev) 612 603 { ··· 616 625 const struct pci_error_handlers hfi1_pci_err_handler = { 617 626 .error_detected = pci_error_detected, 618 627 .mmio_enabled = pci_mmio_enabled, 619 - .link_reset = pci_link_reset, 620 628 .slot_reset = pci_slot_reset, 621 629 .resume = pci_resume, 622 630 };
-8
drivers/infiniband/hw/qib/qib_pcie.c
··· 682 682 return PCI_ERS_RESULT_CAN_RECOVER; 683 683 } 684 684 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 - 692 685 static void 693 686 qib_pci_resume(struct pci_dev *pdev) 694 687 { ··· 700 707 const struct pci_error_handlers qib_pci_err_handler = { 701 708 .error_detected = qib_pci_error_detected, 702 709 .mmio_enabled = qib_pci_mmio_enabled, 703 - .link_reset = qib_pci_link_reset, 704 710 .slot_reset = qib_pci_slot_reset, 705 711 .resume = qib_pci_resume, 706 712 };
-7
drivers/media/pci/ngene/ngene-cards.c
··· 781 781 return PCI_ERS_RESULT_CAN_RECOVER; 782 782 } 783 783 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 - 790 784 static pci_ers_result_t ngene_slot_reset(struct pci_dev *dev) 791 785 { 792 786 printk(KERN_INFO DEVICE_NAME ": slot reset\n"); ··· 794 800 795 801 static const struct pci_error_handlers ngene_errors = { 796 802 .error_detected = ngene_error_detected, 797 - .link_reset = ngene_link_reset, 798 803 .slot_reset = ngene_slot_reset, 799 804 .resume = ngene_resume, 800 805 };
-1
drivers/misc/genwqe/card_base.c
··· 1336 1336 static struct pci_error_handlers genwqe_err_handler = { 1337 1337 .error_detected = genwqe_err_error_detected, 1338 1338 .mmio_enabled = genwqe_err_result_none, 1339 - .link_reset = genwqe_err_result_none, 1340 1339 .slot_reset = genwqe_err_slot_reset, 1341 1340 .resume = genwqe_err_resume, 1342 1341 };
-3
include/linux/pci.h
··· 678 678 /* MMIO has been re-enabled, but not DMA */ 679 679 pci_ers_result_t (*mmio_enabled)(struct pci_dev *dev); 680 680 681 - /* PCI Express link has been reset */ 682 - pci_ers_result_t (*link_reset)(struct pci_dev *dev); 683 - 684 681 /* PCI slot has been reset */ 685 682 pci_ers_result_t (*slot_reset)(struct pci_dev *dev); 686 683