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?