x86: make NR_IRQS build-time configurable
PATCH 3/3 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 <[email protected]>
xen/Rules.mk +3 -0
@@ -69,6 +69,9 @@ CFLAGS-$(frame_pointer) += -fno-omit-fra 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__
xen/include/asm-x86/config.h +6 -0
@@ -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
xen/include/asm-x86/domain.h +1 -1
@@ -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 ];
xen/include/asm-x86/mach-default/irq_vectors.h +0 -3
@@ -30,7 +30,4 @@#define NR_VECTORS 256 -/* Limited by number of trap vectors. */ -#define NR_IRQS NR_VECTORS -#endif /* _ASM_IRQ_VECTORS_H */