On Sun, Jan 14, 2024 at 12:21:59PM +0000, Bernhard Beschow wrote: > > > Am 7. Januar 2024 23:16:23 UTC schrieb Bernhard Beschow <shen...@gmail.com>: > >This is a follow-up on commit 89965db43cce "hw/isa/piix3: Avoid Xen-specific > >variant of piix3_write_config()" which introduced > >piix_intx_routing_notifier_xen(). This function is implemented in board code > >but > >accesses the PCI configuration space of the PIIX ISA function to determine > >the > >PCI interrupt routes. Avoid this by reusing pci_device_route_intx_to_irq() > >which > >makes piix_intx_routing_notifier_xen() more device-agnostic. > > > >One remaining improvement would be making piix_intx_routing_notifier_xen() > >agnostic towards the number of PCI interrupt routes and move it to xen-hvm. > >This might be useful for possible Q35 Xen efforts but remains a future > >exercise > >for now. > > > >Signed-off-by: Bernhard Beschow <shen...@gmail.com> > > Hi Michael, > > could you tag this, too? Or do we need another R-b? > > Best regards, > Bernhard
tagged, too. > >--- > > hw/i386/pc_piix.c | 9 +++------ > > 1 file changed, 3 insertions(+), 6 deletions(-) > > > >diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c > >index 042c13cdbc..abfcfe4d2b 100644 > >--- a/hw/i386/pc_piix.c > >+++ b/hw/i386/pc_piix.c > >@@ -92,13 +92,10 @@ static void piix_intx_routing_notifier_xen(PCIDevice > >*dev) > > { > > int i; > > > >- /* Scan for updates to PCI link routes (0x60-0x63). */ > >+ /* Scan for updates to PCI link routes. */ > > for (i = 0; i < PIIX_NUM_PIRQS; i++) { > >- uint8_t v = dev->config_read(dev, PIIX_PIRQCA + i, 1); > >- if (v & 0x80) { > >- v = 0; > >- } > >- v &= 0xf; > >+ const PCIINTxRoute route = pci_device_route_intx_to_irq(dev, i); > >+ const uint8_t v = route.mode == PCI_INTX_ENABLED ? route.irq : 0; > > xen_set_pci_link_route(i, v); > > } > > }