From: Ingo Molnar Cleanup: change ARCH_HAS_IRQ_PER_CPU into a Kconfig method. Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner Signed-off-by: Andrew Morton --- arch/cris/Kconfig | 4 ++++ arch/ia64/Kconfig | 4 ++++ arch/mips/Kconfig | 5 +++++ arch/parisc/Kconfig | 4 ++++ arch/powerpc/Kconfig | 4 ++++ include/asm-cris/irq.h | 5 ----- include/asm-ia64/irq.h | 5 ----- include/asm-mips/mach-mips/irq.h | 6 ------ include/asm-parisc/irq.h | 5 ----- include/asm-powerpc/irq.h | 5 ----- include/linux/irq.h | 2 +- kernel/irq/manage.c | 4 ++-- 12 files changed, 24 insertions(+), 29 deletions(-) diff -puN arch/cris/Kconfig~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu arch/cris/Kconfig --- devel/arch/cris/Kconfig~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu 2006-06-09 15:22:59.000000000 -0700 +++ devel-akpm/arch/cris/Kconfig 2006-06-09 15:22:59.000000000 -0700 @@ -28,6 +28,10 @@ config GENERIC_CALIBRATE_DELAY bool default y +config IRQ_PER_CPU + bool + default y + config CRIS bool default y diff -puN arch/ia64/Kconfig~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu arch/ia64/Kconfig --- devel/arch/ia64/Kconfig~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu 2006-06-09 15:22:59.000000000 -0700 +++ devel-akpm/arch/ia64/Kconfig 2006-06-09 15:22:59.000000000 -0700 @@ -504,6 +504,10 @@ config GENERIC_PENDING_IRQ depends on GENERIC_HARDIRQS && SMP default y +config IRQ_PER_CPU + bool + default y + source "arch/ia64/hp/sim/Kconfig" menu "Instrumentation Support" diff -puN arch/mips/Kconfig~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu arch/mips/Kconfig --- devel/arch/mips/Kconfig~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu 2006-06-09 15:22:59.000000000 -0700 +++ devel-akpm/arch/mips/Kconfig 2006-06-09 15:22:59.000000000 -0700 @@ -1601,6 +1601,11 @@ config GENERIC_IRQ_PROBE bool default y +config IRQ_PER_CPU + depends on SMP + bool + default y + # # - Highmem only makes sense for the 32-bit kernel. # - The current highmem code will only work properly on physically indexed diff -puN arch/parisc/Kconfig~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu arch/parisc/Kconfig --- devel/arch/parisc/Kconfig~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu 2006-06-09 15:22:59.000000000 -0700 +++ devel-akpm/arch/parisc/Kconfig 2006-06-09 15:22:59.000000000 -0700 @@ -51,6 +51,10 @@ config GENERIC_HARDIRQS config GENERIC_IRQ_PROBE def_bool y +config IRQ_PER_CPU + bool + default y + # unless you want to implement ACPI on PA-RISC ... ;-) config PM bool diff -puN arch/powerpc/Kconfig~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu arch/powerpc/Kconfig --- devel/arch/powerpc/Kconfig~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu 2006-06-09 15:22:59.000000000 -0700 +++ devel-akpm/arch/powerpc/Kconfig 2006-06-09 15:22:59.000000000 -0700 @@ -30,6 +30,10 @@ config GENERIC_HARDIRQS bool default y +config IRQ_PER_CPU + bool + default y + config RWSEM_GENERIC_SPINLOCK bool diff -puN include/asm-cris/irq.h~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu include/asm-cris/irq.h --- devel/include/asm-cris/irq.h~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu 2006-06-09 15:22:59.000000000 -0700 +++ devel-akpm/include/asm-cris/irq.h 2006-06-09 15:22:59.000000000 -0700 @@ -1,11 +1,6 @@ #ifndef _ASM_IRQ_H #define _ASM_IRQ_H -/* - * IRQ line status macro IRQ_PER_CPU is used - */ -#define ARCH_HAS_IRQ_PER_CPU - #include static inline int irq_canonicalize(int irq) diff -puN include/asm-ia64/irq.h~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu include/asm-ia64/irq.h --- devel/include/asm-ia64/irq.h~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu 2006-06-09 15:22:59.000000000 -0700 +++ devel-akpm/include/asm-ia64/irq.h 2006-06-09 15:22:59.000000000 -0700 @@ -14,11 +14,6 @@ #define NR_IRQS 256 #define NR_IRQ_VECTORS NR_IRQS -/* - * IRQ line status macro IRQ_PER_CPU is used - */ -#define ARCH_HAS_IRQ_PER_CPU - static __inline__ int irq_canonicalize (int irq) { diff -puN include/asm-mips/mach-mips/irq.h~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu include/asm-mips/mach-mips/irq.h --- devel/include/asm-mips/mach-mips/irq.h~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu 2006-06-09 15:22:59.000000000 -0700 +++ devel-akpm/include/asm-mips/mach-mips/irq.h 2006-06-09 15:22:59.000000000 -0700 @@ -4,10 +4,4 @@ #define NR_IRQS 256 -#ifdef CONFIG_SMP - -#define ARCH_HAS_IRQ_PER_CPU - -#endif - #endif /* __ASM_MACH_MIPS_IRQ_H */ diff -puN include/asm-parisc/irq.h~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu include/asm-parisc/irq.h --- devel/include/asm-parisc/irq.h~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu 2006-06-09 15:22:59.000000000 -0700 +++ devel-akpm/include/asm-parisc/irq.h 2006-06-09 15:22:59.000000000 -0700 @@ -26,11 +26,6 @@ #define NR_IRQS (CPU_IRQ_MAX + 1) -/* - * IRQ line status macro IRQ_PER_CPU is used - */ -#define ARCH_HAS_IRQ_PER_CPU - static __inline__ int irq_canonicalize(int irq) { return (irq == 2) ? 9 : irq; diff -puN include/asm-powerpc/irq.h~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu include/asm-powerpc/irq.h --- devel/include/asm-powerpc/irq.h~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu 2006-06-09 15:22:59.000000000 -0700 +++ devel-akpm/include/asm-powerpc/irq.h 2006-06-09 15:22:59.000000000 -0700 @@ -30,11 +30,6 @@ #define IRQ_POLARITY_POSITIVE 0x2 /* high level or low->high edge */ #define IRQ_POLARITY_NEGATIVE 0x0 /* low level or high->low edge */ -/* - * IRQ line status macro IRQ_PER_CPU is used - */ -#define ARCH_HAS_IRQ_PER_CPU - #define get_irq_desc(irq) (&irq_desc[(irq)]) /* Define a way to iterate across irqs. */ diff -puN include/linux/irq.h~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu include/linux/irq.h --- devel/include/linux/irq.h~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu 2006-06-09 15:22:59.000000000 -0700 +++ devel-akpm/include/linux/irq.h 2006-06-09 15:22:59.000000000 -0700 @@ -33,7 +33,7 @@ #define IRQ_WAITING 32 /* IRQ not yet seen - for autodetection */ #define IRQ_LEVEL 64 /* IRQ level triggered */ #define IRQ_MASKED 128 /* IRQ masked - shouldn't be seen again */ -#ifdef ARCH_HAS_IRQ_PER_CPU +#ifdef CONFIG_IRQ_PER_CPU # define IRQ_PER_CPU 256 /* IRQ is per CPU */ # define CHECK_IRQ_PER_CPU(var) ((var) & IRQ_PER_CPU) #else diff -puN kernel/irq/manage.c~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu kernel/irq/manage.c --- devel/kernel/irq/manage.c~genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu 2006-06-09 15:22:59.000000000 -0700 +++ devel-akpm/kernel/irq/manage.c 2006-06-09 15:22:59.000000000 -0700 @@ -198,7 +198,7 @@ int setup_irq(unsigned int irq, struct i if (!(old->flags & new->flags & SA_SHIRQ)) goto mismatch; -#if defined(ARCH_HAS_IRQ_PER_CPU) && defined(SA_PERCPU_IRQ) +#if defined(CONFIG_IRQ_PER_CPU) && defined(SA_PERCPU_IRQ) /* All handlers must agree on per-cpuness */ if ((old->flags & IRQ_PER_CPU) != (new->flags & IRQ_PER_CPU)) goto mismatch; @@ -213,7 +213,7 @@ int setup_irq(unsigned int irq, struct i } *p = new; -#if defined(ARCH_HAS_IRQ_PER_CPU) && defined(SA_PERCPU_IRQ) +#if defined(CONFIG_IRQ_PER_CPU) && defined(SA_PERCPU_IRQ) if (new->flags & SA_PERCPU_IRQ) desc->status |= IRQ_PER_CPU; #endif _