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)

Reply via email to