All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] PCI/DPC: Fix EDR recovery path issues
@ 2026-02-12 19:18 Danielle Costantino
  2026-02-12 19:18 ` [PATCH 1/2] PCI/DPC: Clear Interrupt Status in dpc_reset_link() Danielle Costantino
  2026-02-12 19:18 ` [PATCH 2/2] PCI/EDR: Defer AER status clearing until after recovery Danielle Costantino
  0 siblings, 2 replies; 15+ messages in thread
From: Danielle Costantino @ 2026-02-12 19:18 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Keith Busch, Kuppuswamy Sathyanarayanan, Lukas Wunner,
	Mahesh J Salgaonkar, Oliver O'Halloran, linux-pci,
	Danielle Costantino

Two fixes for the firmware-first EDR path in DPC error recovery.

Both were found investigating recurring DPC events on a platform using
firmware-first EDR, where each recovery left stale state in the DPC
Status register and cleared AER diagnostic data before driver callbacks
could inspect it.

Patch 1 fixes DPC Interrupt Status (bit 3) never being cleared in the
EDR path.  In native DPC, dpc_irq() clears it in the top-half, but
EDR bypasses dpc_irq() entirely.  After this fix, dpc_reset_link()
clears both Trigger Status and Interrupt Status together.

Patch 2 moves pci_aer_raw_clear_status() from before pcie_do_recovery()
to after it in edr_handle_event(), so AER registers remain readable
throughout the driver recovery callbacks.

Tested on a firmware-first EDR platform.  A natural DPC event
confirmed:
  - DPC Status properly cleared: 0x2000 (clean) vs 0x2008 (stale, unpatched)
  - AER data available during recovery (GHES captured aer_uncor_status:
    0x00100010 throughout recovery window)
  - Full recovery successful in ~2.3s with link re-establishment

Danielle Costantino (2):
  PCI/DPC: Clear Interrupt Status in dpc_reset_link()
  PCI/EDR: Defer AER status clearing until after recovery

 drivers/pci/pcie/dpc.c | 10 +++++++++-
 drivers/pci/pcie/edr.c | 11 ++++++++++-
 2 files changed, 19 insertions(+), 2 deletions(-)

--
2.47.3


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2026-02-13 17:08 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-12 19:18 [PATCH 0/2] PCI/DPC: Fix EDR recovery path issues Danielle Costantino
2026-02-12 19:18 ` [PATCH 1/2] PCI/DPC: Clear Interrupt Status in dpc_reset_link() Danielle Costantino
2026-02-12 19:50   ` Kuppuswamy Sathyanarayanan
2026-02-12 21:23     ` Keith Busch
2026-02-12 21:49       ` Kuppuswamy Sathyanarayanan
2026-02-12 22:12         ` Keith Busch
2026-02-12 22:51           ` Kuppuswamy Sathyanarayanan
2026-02-13  1:22             ` Keith Busch
2026-02-13  4:28               ` Sathyanarayanan Kuppuswamy
2026-02-13 14:01                 ` Keith Busch
2026-02-13 17:08                   ` Kuppuswamy Sathyanarayanan
     [not found]               ` <4c0d0575-0da1-49ff-878e-65622b442e98@linux.intel.com>
2026-02-13  4:29                 ` Sathyanarayanan Kuppuswamy
2026-02-12 21:36   ` Lukas Wunner
2026-02-12 21:50     ` Keith Busch
2026-02-12 19:18 ` [PATCH 2/2] PCI/EDR: Defer AER status clearing until after recovery Danielle Costantino

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.