Skip to content
  1. Jan 31, 2018
  2. Jan 27, 2018
  3. Jan 11, 2018
    • Alex Williamson's avatar
      PCI/DPC: Fix shared interrupt handling · aa6ca5a9
      Alex Williamson authored
      
      
      DPC supports shared interrupts, but it plays very loosely with testing
      whether the interrupt is generated by DPC before generating spurious log
      messages, such as:
      
        dpc 0000:10:01.2:pcie010: DPC containment event, status:0x1f00 source:0x0000
      
      Testing the status register for zero or -1 is not sufficient when the
      device supports the RP PIO First Error Pointer register.  Change this to
      test whether the interrupt is enabled in the control register, retaining
      the device present test, and that the status reports the interrupt as
      signaled and DPC is triggered, clearing as a spurious interrupt otherwise.
      
      Additionally, since the interrupt is actually serviced by a workqueue,
      disable the interrupt in the control register until that completes or else
      we may never see it execute due to further incoming interrupts.  A software
      generated DPC floods the system otherwise.
      
      Signed-off-by: default avatarAlex Williamson <alex.williamson@redhat.com>
      Signed-off-by: default avatarBjorn Helgaas <helgaas@kernel.org>
      Reviewed-by: default avatarKeith Busch <keith.busch@intel.com>
      aa6ca5a9
  4. Dec 18, 2017
  5. Dec 17, 2017