Re: [PATCH v2 1/1] PCI: pciehp: Skip DLLSC handling if DPC is triggered

From: Lukas Wunner
Date: Wed Mar 17 2021 - 15:40:49 EST


On Wed, Mar 17, 2021 at 12:22:41PM -0700, Raj, Ashok wrote:
> On Wed, Mar 17, 2021 at 08:09:52PM +0100, Lukas Wunner wrote:
> > On Wed, Mar 17, 2021 at 10:45:21AM -0700, Dan Williams wrote:
> > > Ah, ok, we're missing a flush of the hotplug event handler after the
> > > link is up to make sure the hotplug handler does not see the Link Up.
> > > I'm not immediately seeing how the new proposal ensures that there is
> > > no Link Up event still in flight after DPC completes its work.
> > > Wouldn't it be required to throw away Link Up to Link Up transitions?
> >
> > If you look at the new code added to pciehp_ist() by my patch...
> >
> > atomic_and(~PCI_EXP_SLTSTA_DLLSC, &ctrl->pending_events);
> > if (pciehp_check_link_active(ctrl) > 0)
> > events &= ~PCI_EXP_SLTSTA_DLLSC;
>
> When you have a Surprise Link Down and without any DPC, the link trains
> back up. Aren't we expected to take the slot down and add it as if a remove
> and add happens?
>
> without this change if slot-status == ON_STATE, DLLSC means we would power
> the slot off. Then we check link_active and bring the slot back on isn't
> it?

Yes to both questions. That behavior should still be the same
with the patch. Do you think it's not?