On Tue, Jul 03, 2018 at 09:31:24AM -0400, Sinan Kaya wrote:
Issue is observing hotplug link down event in the middle of AER recovery
as in my previous reply.
If we mask hotplug interrupts before secondary bus reset via my patch,
then hotplug driver will not observe both link up and link down interrupts.
If we don't mask hotplug interrupts, we have a race condition.
I assume that a bus reset not only causes a link and presence event but
also clears the Presence Detect State bit in the Slot Status register
and the Data Link Layer Link Active bit in the Link Status register
momentarily.
pciehp may access those two bits concurrently to the AER driver
performing a slot reset. So it may not be sufficient to mask
the interrupt.
I've posted this patch to address the issue:
https://patchwork.ozlabs.org/patch/930391/
Thanks,
Lukas