Add a loader tunable (hw.pci.enable_pcie_hp) to disable PCI-e HotPlug.
Some systems and/or devices (such as riser cards) do not include a non-compliant implementation of PCI-e HotPlug that can result in devices not being attached (e.g. the HotPlug code might assume that a card is being unplugged and will power the slot off and detach it). This tunable can be set to 0 to disable support for PCI-e HotPlug ignoring the incorrect HotPlug state on these slots. PR: 211081 Reported by: Sergey Renkas <serg_ic@mail.ru> (SuperMicro X7 riser card) Reported by: Jeffrey E Pieper <jeffrey.e.pieper@intel.com> (Intel X520 adapter) MFC after: 1 week Relnotes: yes
This commit is contained in:
parent
718fe473dd
commit
25a57bd64b
@ -907,11 +907,19 @@ pcib_set_mem_decode(struct pcib_softc *sc)
|
||||
/*
|
||||
* PCI-express HotPlug support.
|
||||
*/
|
||||
static int pci_enable_pcie_hp = 1;
|
||||
SYSCTL_INT(_hw_pci, OID_AUTO, enable_pcie_hp, CTLFLAG_RDTUN,
|
||||
&pci_enable_pcie_hp, 0,
|
||||
"Enable support for native PCI-express HotPlug.");
|
||||
|
||||
static void
|
||||
pcib_probe_hotplug(struct pcib_softc *sc)
|
||||
{
|
||||
device_t dev;
|
||||
|
||||
if (!pci_enable_pcie_hp)
|
||||
return;
|
||||
|
||||
dev = sc->dev;
|
||||
if (pci_find_cap(dev, PCIY_EXPRESS, NULL) != 0)
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user