diff options
author | Andrea Bolognani <abologna@redhat.com> | 2023-02-24 19:49:48 +0100 |
---|---|---|
committer | Stefano Brivio <sbrivio@redhat.com> | 2023-02-27 18:56:24 +0100 |
commit | 4f2341f31d3640751f41aeaeea24ba6ba140c140 (patch) | |
tree | cb992120da2d02d92e7bbb56dae240f45892d38a /util.c | |
parent | 8828a637ba5e58e3685594773206935a3bce9892 (diff) | |
download | passt-4f2341f31d3640751f41aeaeea24ba6ba140c140.tar passt-4f2341f31d3640751f41aeaeea24ba6ba140c140.tar.gz passt-4f2341f31d3640751f41aeaeea24ba6ba140c140.tar.bz2 passt-4f2341f31d3640751f41aeaeea24ba6ba140c140.tar.lz passt-4f2341f31d3640751f41aeaeea24ba6ba140c140.tar.xz passt-4f2341f31d3640751f41aeaeea24ba6ba140c140.tar.zst passt-4f2341f31d3640751f41aeaeea24ba6ba140c140.zip |
qrap: Introduce machine-specific PCI address base
For pc machines, devices are placed directly on pci.0 with
addresses like
bus=pci.0,addr=0xa
and in this case the existing code works correctly.
For q35 machines, however, a separate PCI bus is created for
each devices using a pcie-root-port, and the resulting
addresses look like
bus=pci.9,addr=0x0
In this case, we need to treat PCI addresses as decimal, not
hexadecimal, both when parsing and generating them.
This issue has gone unnoticed for a long time because it only
shows up when enough PCI devices are present: for small
numbers, decimal and hexadecimal overlap, masking the issue.
Reported-by: Alona Paz <alkaplan@redhat.com>
Fixes: 5307faa05997 ("qrap: Strip network devices from command line, set them up according to machine")
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'util.c')
0 files changed, 0 insertions, 0 deletions