aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xen/arch/arm/dummy.S2
-rw-r--r--xen/common/domain.c4
-rw-r--r--xen/include/asm-arm/irq.h3
-rw-r--r--xen/include/asm-x86/irq.h4
-rw-r--r--xen/include/xen/irq.h8
-rw-r--r--xen/xsm/flask/hooks.c4
6 files changed, 11 insertions, 14 deletions
diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
index 6416f949cf..a214fbfedf 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 12c8e24e09..2f8ef0070f 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 abde83951f..bd6b54a3b9 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 5eefb945a5..7f5da0600c 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 5973ccea1f..738635816b 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 0ca10d05ad..782e28c358 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;