aboutsummaryrefslogtreecommitdiffstats
path: root/xen
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-11-20 14:23:59 +0000
committerKeir Fraser <keir.fraser@citrix.com>2008-11-20 14:23:59 +0000
commit39bef5bcf02a72fc5552dd20c61ec7ea65c85054 (patch)
tree7d17f0176b28d6e143ed362d3a37cf9da5f3ec98 /xen
parentf0f1915d273490f2cdd698932d6592f4024b9b75 (diff)
downloadxen-39bef5bcf02a72fc5552dd20c61ec7ea65c85054.tar.gz
xen-39bef5bcf02a72fc5552dd20c61ec7ea65c85054.tar.bz2
xen-39bef5bcf02a72fc5552dd20c61ec7ea65c85054.zip
x86: make NR_IRQS build-time configurable
While keeping the NR_IRQS default at 256 here, I think it would be a good thing to set it to a higher value to make sure no new mixing of irq and vector spaces slip in. Tested with NR_IRQS forced to 1024. Signed-off-by: Jan Beulich <jbeulich@novell.com>
Diffstat (limited to 'xen')
-rw-r--r--xen/Rules.mk3
-rw-r--r--xen/include/asm-x86/config.h6
-rw-r--r--xen/include/asm-x86/domain.h2
-rw-r--r--xen/include/asm-x86/mach-default/irq_vectors.h3
4 files changed, 10 insertions, 4 deletions
diff --git a/xen/Rules.mk b/xen/Rules.mk
index 36292c92e5..43a4f63249 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -69,6 +69,9 @@ CFLAGS-$(frame_pointer) += -fno-omit-frame-pointer -DCONFIG_FRAME_POINTER
ifneq ($(max_phys_cpus),)
CFLAGS-y += -DMAX_PHYS_CPUS=$(max_phys_cpus)
endif
+ifneq ($(max_phys_irqs),)
+CFLAGS-y += -DMAX_PHYS_IRQS=$(max_phys_irqs)
+endif
AFLAGS-y += -D__ASSEMBLY__
diff --git a/xen/include/asm-x86/config.h b/xen/include/asm-x86/config.h
index 815eb4a95d..aa9b234370 100644
--- a/xen/include/asm-x86/config.h
+++ b/xen/include/asm-x86/config.h
@@ -51,6 +51,12 @@
#define NR_CPUS 32
#endif
+#ifdef MAX_PHYS_IRQS
+#define NR_IRQS MAX_PHYS_IRQS
+#else
+#define NR_IRQS 256
+#endif
+
#if defined(__i386__) && (NR_CPUS > 32)
#error "Maximum of 32 physical processors supported by Xen on x86_32"
#endif
diff --git a/xen/include/asm-x86/domain.h b/xen/include/asm-x86/domain.h
index fb95c064ad..1589615363 100644
--- a/xen/include/asm-x86/domain.h
+++ b/xen/include/asm-x86/domain.h
@@ -236,7 +236,7 @@ struct arch_domain
/* NB. protected by d->event_lock and by irq_desc[vector].lock */
int vector_pirq[NR_VECTORS];
- int pirq_vector[NR_IRQS];
+ s16 pirq_vector[NR_IRQS];
/* Pseudophysical e820 map (XENMEM_memory_map). */
struct e820entry e820[3];
diff --git a/xen/include/asm-x86/mach-default/irq_vectors.h b/xen/include/asm-x86/mach-default/irq_vectors.h
index 626e6cd1b5..057b2a35b8 100644
--- a/xen/include/asm-x86/mach-default/irq_vectors.h
+++ b/xen/include/asm-x86/mach-default/irq_vectors.h
@@ -30,7 +30,4 @@
#define NR_VECTORS 256
-/* Limited by number of trap vectors. */
-#define NR_IRQS NR_VECTORS
-
#endif /* _ASM_IRQ_VECTORS_H */