Paolo Bonzini <pbonz...@redhat.com> writes: > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > 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 6f34159..a193caa 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(), > + }, > };
Out of this patch's scope, but I need to ask anyway: do devices on a spapr-vio bus have a unique address? If yes, what is it? > > VIOsPAPRDevice *spapr_vio_find_by_reg(VIOsPAPRBus *bus, uint32_t reg) > @@ -603,7 +607,9 @@ static int spapr_vio_busdev_init(DeviceState *qdev, > DeviceInfo *qinfo) > } > > dev->qdev.id = id; > - dev->vio_irq_num = spapr_allocate_irq (spapr); > + if (!dev->vio_irq_num) { > + dev->vio_irq_num = spapr_allocate_irq (spapr); > + } > dev->qirq = xics_find_qirq(spapr->icp, dev->vio_irq_num); > > rtce_init(dev); Is it okay to share interrupts? I'm asking because spapr_allocate_irq() will happily assign IRQs already used via property. From PATCH 1/1: static inline int spapr_allocate_irq(sPAPREnvironment *spapr) { return spapr->next_irq++; }