Re: [PATCH] PCI: pciehp: Do not turn off slot if presence comes up after link

From: Lukas Wunner
Date: Tue Feb 12 2019 - 05:37:04 EST


On Tue, Feb 12, 2019 at 09:30:31AM +0100, Lukas Wunner wrote:
> Instead of modifying the logic in pciehp_handle_presence_or_link_change(),
> you could amend pcie_wait_for_link() to poll PDS until it's set, in
> addition to DLLLA. The rationale would be that although the link is up,
> the hot-added device cannot really be considered accessible until PDS
> is also set. Unfortunately we cannot do this for all devices because
> (as I've said before), some broken devices hardwire PDS to zero. But
> it should be safe to constrain it to those which can disable in-band
> presence.

An alternative approach would of course be to only enable one of PDC or
DLLSC events if in-band presence is disabled. In the case of DLLSC,
you'd also need to modify pciehp_reset_slot() in addition to
pcie_enable_notification().

Thanks,

Lukas