aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 */