Require Data Layer Active reporting for native PCI-e HotPlug.

Some PCI-e bridges report that they support HotPlug in the slot
capabilities but do not report support for Data Layer Active events
in the link capabilities register.  These bridges do not work correctly
when HotPlug is used.  Further, while the description of HotPlug in
the spec does not mention that DL active events are required, the
description of the link capabilities register says that DL active is
required for HotPlug.  Thanks to Dave Baukus for finding that language
in the spec.

PR:		211699
Submitted by:	Dave Baukus <daveb@spectralogic.com>
Reviewed by:	vangyzen
MFC after:	3 days
This commit is contained in:
jhb 2017-02-02 17:29:15 +00:00
parent 907009c8af
commit ca7560cb41

View File

@ -935,6 +935,8 @@ pcib_probe_hotplug(struct pcib_softc *sc)
if ((sc->pcie_slot_cap & PCIEM_SLOT_CAP_HPC) == 0)
return;
if ((sc->pcie_link_cap & PCIEM_LINK_CAP_DL_ACTIVE) == 0)
return;
/*
* Some devices report that they have an MRL when they actually