Page MenuHomeFreeBSD

pci: Do not reconcile MPS across PCI domains
ClosedPublic

Authored by kbowling on Fri, Aug 14, 5:24 AM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Aug 14, 7:03 PM
Unknown Object (File)
Fri, Aug 14, 7:00 PM
Unknown Object (File)
Fri, Aug 14, 1:14 PM
Unknown Object (File)
Fri, Aug 14, 1:12 PM
Unknown Object (File)
Fri, Aug 14, 12:08 PM
Subscribers

Details

Summary
A PCI function can provide a host bridge into a synthetic PCI domain.
Intel VMD does this: the host facing VMD function remains in its
original domain while the hidden Root Ports and endpoints appear in a
separate domain.  The VMD function's Device Control does not describe
an upstream link in that synthetic hierarchy.

The hierarchy wide cold pass incorrectly used the VMD function's MPS
to reprogram the hidden ports and their endpoints.  Stop both cold
reconciliation and runtime path walks at a PCI domain boundary.  The
real Root Ports within the VMD domain continue to reconcile their
endpoints normally.

Fixes:          8e9fe9996a1f
MFC after:      6 days

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable