Update to FreeBSD head 2018-06-01

Git mirror commit fb63610a69b0eb7f69a201ba05c4c1a7a2739cf9.

Update #3472.
This commit is contained in:
Sebastian Huber
2018-08-21 13:47:02 +02:00
parent 2df56dbd60
commit bcdce02d9b
340 changed files with 27754 additions and 11720 deletions

View File

@@ -2547,6 +2547,22 @@ pcib_enable_ari(struct pcib_softc *sc, uint32_t pcie_pos)
int
pcib_maxslots(device_t dev)
{
#if !defined(__amd64__) && !defined(__i386__)
uint32_t pcie_pos;
uint16_t val;
/*
* If this is a PCIe rootport or downstream switch port, there's only
* one slot permitted.
*/
if (pci_find_cap(dev, PCIY_EXPRESS, &pcie_pos) == 0) {
val = pci_read_config(dev, pcie_pos + PCIER_FLAGS, 2);
val &= PCIEM_FLAGS_TYPE;
if (val == PCIEM_TYPE_ROOT_PORT ||
val == PCIEM_TYPE_DOWNSTREAM_PORT)
return (0);
}
#endif
return (PCI_SLOTMAX);
}
@@ -2560,7 +2576,7 @@ pcib_ari_maxslots(device_t dev)
if (sc->flags & PCIB_ENABLE_ARI)
return (PCIE_ARI_SLOTMAX);
else
return (PCI_SLOTMAX);
return (pcib_maxslots(dev));
}
static int