]> 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)
commit91b2cb9a78ae3b0487497e004c660016bc7b7b44
tree0985fcd4b6e50c05fa0d59592443e865b1647274
parent4a3538e6f287b383daa82410769cec1b79e6df02
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