On Tue, May 24, 2011 at 01:45:07PM +0200, Paolo Bonzini wrote: > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > Cc: Alexander Graf <ag...@suse.de> > Cc: David Gibson <da...@gibson.dropbear.id.au> > --- > hw/spapr_vio.c | 8 +++++++- > 1 files changed, 7 insertions(+), 1 deletions(-) > > diff --git a/hw/spapr_vio.c b/hw/spapr_vio.c > index be535d6..fee4c46 100644 > --- a/hw/spapr_vio.c > +++ b/hw/spapr_vio.c > @@ -52,6 +52,10 @@ > static struct BusInfo spapr_vio_bus_info = { > .name = "spapr-vio", > .size = sizeof(VIOsPAPRBus), > + .props = (Property[]) { > + DEFINE_PROP_UINT32("irq", VIOsPAPRDevice, vio_irq_num, 0), \ > + DEFINE_PROP_END_OF_LIST(), > + }, > };
I don't see what the point of this is. Absolute irq numbers have no special meaning in the XICS context, and the guest kernel will remap them to virtual irqs anyway. > VIOsPAPRDevice *spapr_vio_find_by_reg(VIOsPAPRBus *bus, uint32_t reg) > @@ -604,7 +608,9 @@ static int spapr_vio_busdev_init(DeviceState *qdev, > DeviceInfo *qinfo) > } > > dev->qdev.id = id; > - dev->vio_irq_num = bus->irq++; > + if (!dev->vio_irq_num) { > + dev->vio_irq_num = bus->irq++; > + } > dev->qirq = xics_find_qirq(spapr->icp, dev->vio_irq_num); > > rtce_init(dev); -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson