[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] hw/i386/pc_piix: Make piix_intx_routing_notifier_xen() more device independent



On Sun, Jan 14, 2024 at 12:21:59PM +0000, Bernhard Beschow wrote:
> 
> 
> Am 7. Januar 2024 23:16:23 UTC schrieb Bernhard Beschow <shentey@xxxxxxxxx>:
> >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 <shentey@xxxxxxxxx>
> 
> 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);
> >     }
> > }




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.