From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexander Graf Date: Thu, 28 Jun 2012 13:02:33 +0000 Subject: Re: [PATCH] pseries pci: removed dt_irq from PCI host bus Message-Id: <4FEC55E9.5040202@suse.de> List-Id: References: <4FD96A5A.5050605@ozlabs.ru> In-Reply-To: <4FD96A5A.5050605@ozlabs.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: kvm-ppc@vger.kernel.org On 06/14/2012 06:36 AM, Alexey Kardashevskiy wrote: > As it is a very quick operation to resolve qirq from IRQ number, > it makes no sense to cache it anywhere but its original source i.e. XICS. > > Signed-off-by: Alexey Kardashevskiy Ben, please ack/nack. Alex > --- > hw/spapr_pci.c | 14 +++++--------- > hw/spapr_pci.h | 1 - > 2 files changed, 5 insertions(+), 10 deletions(-) > > diff --git a/hw/spapr_pci.c b/hw/spapr_pci.c > index 269dbbf..93017cd 100644 > --- a/hw/spapr_pci.c > +++ b/hw/spapr_pci.c > @@ -162,7 +162,9 @@ static void pci_spapr_set_irq(void *opaque, int irq_num, int level) > */ > sPAPRPHBState *phb = opaque; > > - qemu_set_irq(phb->lsi_table[irq_num].qirq, level); > + qemu_set_irq(xics_assign_irq(spapr->icp, > + phb->lsi_table[irq_num].dt_irq, XICS_LSI), > + level); > } > > static uint64_t spapr_io_read(void *opaque, target_phys_addr_t addr, > @@ -268,16 +270,10 @@ static int spapr_phb_init(SysBusDevice *s) > > /* Initialize the LSI table */ > for (i = 0; i< PCI_NUM_PINS; i++) { > - qemu_irq qirq; > - uint32_t num; > - > - qirq = spapr_allocate_lsi(0,&num); > - if (!qirq) { > + if (!spapr_allocate_lsi(0,&phb->lsi_table[i].dt_irq)) { > + fprintf(stderr, "Failed to allocate LSI IRQ pin %u\n", i); > return -1; > } > - > - phb->lsi_table[i].dt_irq = num; > - phb->lsi_table[i].qirq = qirq; > } > > return 0; > diff --git a/hw/spapr_pci.h b/hw/spapr_pci.h > index dd66f4b..11c3ee1 100644 > --- a/hw/spapr_pci.h > +++ b/hw/spapr_pci.h > @@ -41,7 +41,6 @@ typedef struct sPAPRPHBState { > > struct { > uint32_t dt_irq; > - qemu_irq qirq; > } lsi_table[PCI_NUM_PINS]; > > QLIST_ENTRY(sPAPRPHBState) list;