]> git.ipfire.org Git - thirdparty/qemu.git/commit
pci: ensure valid link status bits for downstream ports
authorSebastian Ott <sebott@redhat.com>
Tue, 3 Dec 2024 12:19:28 +0000 (13:19 +0100)
committerMichael Tokarev <mjt@tls.msk.ru>
Fri, 17 Jan 2025 06:22:13 +0000 (09:22 +0300)
commit6d1a80edaa1e5ea18cc770de56f34dc33448f4c4
tree1864d81959a5d098589d32cf7e91a95849698804
parente0c3f8f82f9fae8ce6234a70b4843b35c0328a45
pci: ensure valid link status bits for downstream ports

PCI hotplug for downstream endpoints on arm fails because Linux'
PCIe hotplug driver doesn't like the QEMU provided LNKSTA:

  pcieport 0000:08:01.0: pciehp: Slot(2): Card present
  pcieport 0000:08:01.0: pciehp: Slot(2): Link Up
  pcieport 0000:08:01.0: pciehp: Slot(2): Cannot train link: status 0x2000

There's 2 cases where LNKSTA isn't setup properly:
* the downstream device has no express capability
* max link width of the bridge is 0

Move the sanity checks added via 88c869198aa63
("pci: Sanity test minimum downstream LNKSTA") outside of the
branch to make sure downstream ports always have a valid LNKSTA.

Signed-off-by: Sebastian Ott <sebott@redhat.com>
Tested-by: Zhenyu Zhang <zhenyzha@redhat.com>
Message-Id: <20241203121928.14861-1-sebott@redhat.com>
Reviewed-by: Alex Williamson <alex.williamson@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
(cherry picked from commit 694632fd44987cc4618612a38ad151047524a590)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
hw/pci/pcie.c