This patch series consists of two patches. The first provides accessor
functions in pci.h to avoid direct access of slot_reserved_mask
according to the comment at the top of include/hw/pci/pci_bus.h. No
functional change is intended with this patch.
The second patch replaces slot_reserved_mask with two new masks,
slot_reserved_auto_mask and slot_reserved_manual_mask so the current
behavior of reserving slot 2 for the Intel IGD for the xenfv machine
will be ignored if an administrator manually configures a device to use
the reserved slot.
The current behavior of always reserving slots in the sun4u machine is
preserved by this patch series; the patch series only changes how
slot_reserved_mask works in the xenfv machine. Although the patch
series can affect xenfv machines configured for igd-passthru if an
administrator assigns some of the pci slot addresses manually, it
does not affect the libxl default configuration for igd-passthru because
libxl uses automatic slot assignment by default.
Testing:
- Tested xenfv/igd with both manual and auto slot allocation - behaves as
expected
- Verified that qemu-system-sparc64 still compiles with the patches to
sun4u.c
- xen4u machine not tested -- Mark, can you do this?
Link:
https://lore.kernel.org/qemu-devel/20230106064838-mutt-send-email-mst@kernel.org/
Chuck Zmudzinski (2):
pci: avoid accessing slot_reserved_mask directly outside of pci.c
pci: introduce slot_reserved_auto_mask and slot_reserved_manual_mask
Changelog
v4: I forgot to check the patches in v3 for style corrections (sorry about
that), and the second patch had three lines that were too long. Other
than correcting the style problems, no changes since v3.
v3: Re-work second patch in response to comments/discussion of v2
v2: Add first patch and cover letter to make this a 2-patch series
Make changes to the second patch (see second patch for changelog)
hw/pci/pci.c | 33 ++++++++++++++++++++++++++++-----
hw/sparc64/sun4u.c | 7 +++----
hw/xen/xen_pt.c | 8 ++++----
include/hw/pci/pci.h | 3 +++
include/hw/pci/pci_bus.h | 3 ++-
5 files changed, 40 insertions(+), 14 deletions(-)