From: Keith Busch <kbusch@kernel.org>
To: Sathyanarayanan Kuppuswamy <sathyanarayanan.kuppuswamy@linux.intel.com>
Cc: Danielle Costantino <dcostantino@meta.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Lukas Wunner <lukas@wunner.de>,
Mahesh J Salgaonkar <mahesh@linux.ibm.com>,
Oliver O'Halloran <oohall@gmail.com>,
linux-pci@vger.kernel.org
Subject: Re: [PATCH 1/2] PCI/DPC: Clear Interrupt Status in dpc_reset_link()
Date: Fri, 13 Feb 2026 07:01:47 -0700 [thread overview]
Message-ID: <aY8uy9BZyLMYgKua@kbusch-mbp> (raw)
In-Reply-To: <bf28da73-7189-412f-808a-2dbb6d241b4d@linux.intel.com>
On Thu, Feb 12, 2026 at 08:28:15PM -0800, Sathyanarayanan Kuppuswamy wrote:
> Hi Keith,
>
> On 2/12/26 5:22 PM, Keith Busch wrote:
> > On Thu, Feb 12, 2026 at 02:51:46PM -0800, Kuppuswamy Sathyanarayanan wrote:
> > > On 2/12/2026 2:12 PM, Keith Busch wrote:
> > >
> > > As per EDR flow, firmware waits for _OST reply from OS to complete the
> > > current interrupt handling. After receiving _OST, firmware decides whether
> > > recovery should continue or if the link should be disabled. When/how firmware
> > > handles subsequent DPC events depends on firmware's implementation.
> > You at least agree the OS controls the "Trigger Status". That controls
> > whether the link stays contained or not, but now you're saying the
> > firmware gets to yank the link after the OS returns _OST success?
> > There's no flow in the spec suggesting any such behavior.
>
> I was referring to the flow chart and notes on page 85, in PCI firmware spec,
> v3.3, which mention firmware can choose to disable the link in certain
> cases (notes 3,5).
Err, what? No, there is no path for firmware to disable the link if OS
returns _OST 0x80 (success). The path says firmware is supposed to
"Clear ... Disable Link", not to disable the link.
If the firmware wants to disable the link permanently, it does so before
considering DPC and makes it a hotplug event instead.
But in all honesty, that diagram is a complete mess and very poorly
captures what an OS is supposed to do for a DPC. You don't unbind the
drivers when you're trying to recover the devices they're driving.
next prev parent reply other threads:[~2026-02-13 14:01 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aY8uy9BZyLMYgKua@kbusch-mbp \
--to=kbusch@kernel.org \
--cc=bhelgaas@google.com \
--cc=dcostantino@meta.com \
--cc=linux-pci@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=mahesh@linux.ibm.com \
--cc=oohall@gmail.com \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox