From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: [PATCH] xen: remove nr_irqs_gsi from generic code Date: Wed, 19 Dec 2012 15:18:00 +0000 Message-ID: References: <1355928233-15885-1-git-send-email-ian.campbell@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1355928233-15885-1-git-send-email-ian.campbell@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Campbell , xen-devel@lists.xen.org Cc: Daniel De Graaf , Jan Beulich List-Id: xen-devel@lists.xenproject.org On 19/12/2012 14:43, "Ian Campbell" wrote: > The concept is X86 specific. > > AFAICT the generic concept here is the number of physical IRQs which > the current hardware has, so call this nr_hw_irqs. > > Also using "defined NR_IRQS" as a standin for x86 might have made > sense at one point but its just cleaner to push the necessary > definitions into asm/irq.h. > > Signed-off-by: Ian Campbell > Cc: Keir (Xen.org) > Cc: Jan Beulich > Cc: Daniel De Graaf Acked-by: Keir Fraser > -- > v2: s/nr_hw_irqs/nr_static_irqs/g > --- > xen/arch/arm/dummy.S | 2 -- > xen/common/domain.c | 4 ++-- > xen/include/asm-arm/irq.h | 3 +++ > xen/include/asm-x86/irq.h | 4 ++++ > xen/include/xen/irq.h | 8 -------- > xen/xsm/flask/hooks.c | 4 ++-- > 6 files changed, 11 insertions(+), 14 deletions(-) > > diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S > index 6416f94..a214fbf 100644 > --- a/xen/arch/arm/dummy.S > +++ b/xen/arch/arm/dummy.S > @@ -6,5 +6,3 @@ x: .word 0xe7f000f0 /* Undefined instruction */ > .globl x; \ > x: mov pc, lr > > -/* PIRQ support */ > -DUMMY(nr_irqs_gsi); > diff --git a/xen/common/domain.c b/xen/common/domain.c > index 12c8e24..2f8ef00 100644 > --- a/xen/common/domain.c > +++ b/xen/common/domain.c > @@ -259,9 +259,9 @@ struct domain *domain_create( > atomic_inc(&d->pause_count); > > if ( domid ) > - d->nr_pirqs = nr_irqs_gsi + extra_domU_irqs; > + d->nr_pirqs = nr_static_irqs + extra_domU_irqs; > else > - d->nr_pirqs = nr_irqs_gsi + extra_dom0_irqs; > + d->nr_pirqs = nr_static_irqs + extra_dom0_irqs; > if ( d->nr_pirqs > nr_irqs ) > d->nr_pirqs = nr_irqs; > > diff --git a/xen/include/asm-arm/irq.h b/xen/include/asm-arm/irq.h > index abde839..bd6b54a 100644 > --- a/xen/include/asm-arm/irq.h > +++ b/xen/include/asm-arm/irq.h > @@ -21,6 +21,9 @@ struct irq_cfg { > #define NR_IRQS 1024 > #define nr_irqs NR_IRQS > > +#define nr_irqs NR_IRQS > +#define nr_static_irqs NR_IRQS > + > struct irq_desc; > > struct irq_desc *__irq_to_desc(int irq); > diff --git a/xen/include/asm-x86/irq.h b/xen/include/asm-x86/irq.h > index 5eefb94..7f5da06 100644 > --- a/xen/include/asm-x86/irq.h > +++ b/xen/include/asm-x86/irq.h > @@ -11,6 +11,10 @@ > #include > #include > > +extern unsigned int nr_irqs_gsi; > +extern unsigned int nr_irqs; > +#define nr_static_irqs nr_irqs_gsi > + > #define IO_APIC_IRQ(irq) (platform_legacy_irq(irq) ? \ > (1 << (irq)) & io_apic_irqs : \ > (irq) < nr_irqs_gsi) > diff --git a/xen/include/xen/irq.h b/xen/include/xen/irq.h > index 5973cce..7386358 100644 > --- a/xen/include/xen/irq.h > +++ b/xen/include/xen/irq.h > @@ -58,14 +58,6 @@ typedef const struct hw_interrupt_type hw_irq_controller; > > #include > > -#ifdef NR_IRQS > -# define nr_irqs NR_IRQS > -# define nr_irqs_gsi NR_IRQS > -#else > -extern unsigned int nr_irqs_gsi; > -extern unsigned int nr_irqs; > -#endif > - > struct msi_desc; > /* > * This is the "IRQ descriptor", which contains various information > diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c > index 0ca10d0..782e28c 100644 > --- a/xen/xsm/flask/hooks.c > +++ b/xen/xsm/flask/hooks.c > @@ -72,7 +72,7 @@ static int get_irq_sid(int irq, u32 *sid, struct > avc_audit_data *ad) > struct irq_desc *desc = irq_to_desc(irq); > if ( irq >= nr_irqs || irq < 0 ) > return -EINVAL; > - if ( irq < nr_irqs_gsi ) { > + if ( irq < nr_static_irqs ) { > if (ad) { > AVC_AUDIT_DATA_INIT(ad, IRQ); > ad->irq = irq; > @@ -699,7 +699,7 @@ static int flask_map_domain_pirq (struct domain *d, int > irq, void *data) > if ( rc ) > return rc; > > - if ( irq >= nr_irqs_gsi && msi ) { > + if ( irq >= nr_static_irqs && msi ) { > u32 machine_bdf = (msi->seg << 16) | (msi->bus << 8) | msi->devfn; > AVC_AUDIT_DATA_INIT(&ad, DEV); > ad.device = machine_bdf;