[PATCH v4 2/6] xen/igd: don't register rom bar twice
Chuck Zmudzinski <[email protected]> Fri, 31 Jul 2026 20:17:26 -0400
| Newsgroups | gmane.comp.emulators.xen.devel,gmane.comp.emulators.qemu,gmane.comp.emulators.qemu.stable |
|---|---|
| Message-ID | <[email protected]> |
This also fixes a failed assertion in pci [1] for Qemu
version 10 and higher when passing through an Intel
IGD with an option ROM to the guest.
[1] f6fc01c78666 ("hw/pci: Assert a bar is not registered multiple times")
Fixes: 881213f1b9c5 ("xen, gfx passthrough: retrieve VGA BIOS to work")
Signed-off-by: Chuck Zmudzinski <[email protected]>
---
Changes in v4:
- Use 12 digits for commit hashes
hw/xen/xen_pt.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
index c8f08b5..4d159a2 100644
--- a/hw/xen/xen_pt.c
+++ b/hw/xen/xen_pt.c
@@ -459,6 +459,7 @@ static int xen_pt_register_regions(XenPCIPassthroughState *s, uint16_t *cmd)
{
int i = 0;
XenHostPCIDevice *d = &s->real_device;
+ const pcibus_t romsize = s->dev.io_regions[PCI_ROM_SLOT].size;
/* Register PIO/MMIO BARs */
for (i = 0; i < PCI_ROM_SLOT; i++) {
@@ -495,7 +496,7 @@ static int xen_pt_register_regions(XenPCIPassthroughState *s, uint16_t *cmd)
}
/* Register expansion ROM address */
- if (d->rom.base_addr && d->rom.size) {
+ if (!romsize && d->rom.base_addr && d->rom.size) {
uint32_t bar_data = 0;
/* Re-set BAR reported by OS, otherwise ROM can't be read. */
--
2.52.0