22 Jul, 2011

1 commit

  • In addition to native PCIe AER, now APEI (ACPI Platform Error
    Interface) GHES (Generic Hardware Error Source) can be used to report
    PCIe AER errors too. To add support to APEI GHES PCIe AER recovery,
    aer_recover_queue is added to export the recovery function in native
    PCIe AER driver.

    Recoverable PCIe AER errors are reported via NMI in APEI GHES. Then
    APEI GHES uses irq_work to delay the error processing into an IRQ
    handler. But PCIe AER recovery can be very time-consuming, so
    aer_recover_queue, which can be used in IRQ handler, delays the real
    recovery action into the process context, that is, work queue.

    Signed-off-by: Huang Ying
    Signed-off-by: Jesse Barnes

    Huang Ying
     

22 Mar, 2011

1 commit

  • The AER error information printing support is implemented in
    drivers/pci/pcie/aer/aer_print.c. So some string constants, functions
    and macros definitions can be re-used without being exported.

    The original PCIe AER error information printing function is not
    re-used directly because the overall format is quite different. And
    changing the original printing format may make some original users'
    scripts broken.

    Signed-off-by: Huang Ying
    CC: Jesse Barnes
    CC: Zhang Yanmin
    Signed-off-by: Len Brown

    Huang Ying
     

21 Oct, 2008

2 commits

  • The 'use pci_find_ext_capability everywhere' cleanup brought a new bug,
    which makes the AER stop working. Fix it by actually using find_ext_cap
    instead of just find_cap. Drop the unused config space size define while
    we're at it.

    Signed-off-by: Yu Zhao
    Signed-off-by: Jesse Barnes

    Yu Zhao
     
  • Remove some open coded (and buggy) versions of pci_find_ext_capability
    in favor of the real routine in the PCI core.

    Tested-by: Tomasz Czernecki
    Acked-by: Andrew Vasquez
    Reviewed-by: Matthew Wilcox
    Signed-off-by: Jesse Barnes

    Jesse Barnes
     

21 Apr, 2008

1 commit


11 Sep, 2007

1 commit

  • Fix warnings when CONFIG_PCIEAER=n:

    drivers/pci/pcie/portdrv_pci.c:105: warning: statement with no effect
    drivers/pci/pcie/portdrv_pci.c:226: warning: statement with no effect
    drivers/scsi/arcmsr/arcmsr_hba.c:352: warning: statement with no effect

    Signed-off-by: Randy Dunlap
    Acked-by: Linas Vepstas
    Signed-off-by: Greg Kroah-Hartman

    Randy Dunlap
     

12 Jul, 2007

2 commits


27 Sep, 2006

1 commit

  • Patch 3 implements the core part of PCI-Express AER and aerdrv
    port service driver.

    When a root port service device is probed, the aerdrv will call
    request_irq to register irq handler for AER error interrupt.

    When a device sends an PCI-Express error message to the root port,
    the root port will trigger an interrupt, by either MSI or IO-APIC,
    then kernel would run the irq handler. The handler collects root
    error status register and schedules a work. The work will call
    the core part to process the error based on its type
    (Correctable/non-fatal/fatal).

    As for Correctable errors, the patch chooses to just clear the correctable
    error status register of the device.

    As for the non-fatal error, the patch follows generic PCI error handler
    rules to call the error callback functions of the endpoint's driver. If
    the device is a bridge, the patch chooses to broadcast the error to
    downstream devices.

    As for the fatal error, the patch resets the pci-express link and
    follows generic PCI error handler rules to call the error callback
    functions of the endpoint's driver. If the device is a bridge, the patch
    chooses to broadcast the error to downstream devices.

    Signed-off-by: Zhang Yanmin
    Signed-off-by: Greg Kroah-Hartman

    Zhang, Yanmin