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

Re: [Xen-devel] [PATCH] xen: remove nr_irqs_gsi from generic code



>>> On 19.12.12 at 15:43, Ian Campbell <ian.campbell@xxxxxxxxxx> 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 <ian.campbell@xxxxxxxxxx>
> Cc: Keir (Xen.org) <keir@xxxxxxx>
> Cc: Jan Beulich <JBeulich@xxxxxxxx>
> Cc: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>

Acked-by: Jan Beulich <jbeulich@xxxxxxxx>

> --
> 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 <irq_vectors.h>
>  #include <asm/percpu.h>
>  
> +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 <asm/irq.h>
>  
> -#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;
> -- 
> 1.7.9.1



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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