On Wed, Feb 25, 2026 at 10:35:37AM +0000, ehanoc via Devel wrote: > The virPCIDeviceReset() function was using a hardcoded check for > bus != 0 to determine if a device is on a root bus before attempting > a secondary bus reset. This breaks on multi-root systems like Intel > Arrow Lake where devices can be on non-zero root buses (e.g., Bus 0x80 > for the PCH root complex). > > Update the logic to use virPCIDeviceIsOnRootBus() which detects root > bus attachment via sysfs topology, making it work correctly on any > PCI-compliant system regardless of bus numbers. > > This ensures secondary bus reset is never attempted on ANY root bus > (0x00, 0x80, etc.), only on devices behind PCI bridges where it's safe. > > Signed-off-by: Bruno Martins <[email protected]> > --- > src/util/virpci.c | 106 +++++++++++++++++++++++++++++++++++++++++++--- > 1 file changed, 99 insertions(+), 7 deletions(-)
Reviewed-by: Daniel P. Berrangé <[email protected]> (since Laine indicated intent to review it too, I won't push immediately)
