The patch titled genirq: cleanup: turn ARCH_HAS_IRQ_PER_CPU into CONFIG_IRQ_PER_CPU has been added to the -mm tree. Its filename is genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: genirq: cleanup: turn ARCH_HAS_IRQ_PER_CPU into CONFIG_IRQ_PER_CPU From: Ingo Molnar <mingo@xxxxxxx> Cleanup: change ARCH_HAS_IRQ_PER_CPU into a Kconfig method. Signed-off-by: Ingo Molnar <mingo@xxxxxxx> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- 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-05-22 15:13:12.000000000 -0700 +++ devel-akpm/arch/cris/Kconfig 2006-05-22 15:13:12.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-05-22 15:13:12.000000000 -0700 +++ devel-akpm/arch/ia64/Kconfig 2006-05-22 15:13:12.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-05-22 15:13:12.000000000 -0700 +++ devel-akpm/arch/mips/Kconfig 2006-05-22 15:13:12.000000000 -0700 @@ -1603,6 +1603,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-05-22 15:13:12.000000000 -0700 +++ devel-akpm/arch/parisc/Kconfig 2006-05-22 15:13:12.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-05-22 15:13:12.000000000 -0700 +++ devel-akpm/arch/powerpc/Kconfig 2006-05-22 15:13:12.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-05-22 15:13:12.000000000 -0700 +++ devel-akpm/include/asm-cris/irq.h 2006-05-22 15:13:12.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 <asm/arch/irq.h> 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-05-22 15:13:12.000000000 -0700 +++ devel-akpm/include/asm-ia64/irq.h 2006-05-22 15:13:12.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-05-22 15:13:12.000000000 -0700 +++ devel-akpm/include/asm-mips/mach-mips/irq.h 2006-05-22 15:13:12.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-05-22 15:13:12.000000000 -0700 +++ devel-akpm/include/asm-parisc/irq.h 2006-05-22 15:13:12.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-05-22 15:13:12.000000000 -0700 +++ devel-akpm/include/asm-powerpc/irq.h 2006-05-22 15:13:12.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-05-22 15:13:12.000000000 -0700 +++ devel-akpm/include/linux/irq.h 2006-05-22 15:13:12.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-05-22 15:13:12.000000000 -0700 +++ devel-akpm/kernel/irq/manage.c 2006-05-22 15:13:12.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 _ Patches currently in -mm which might be from mingo@xxxxxxx are git-acpi.patch fix-drivers-mfd-ucb1x00-corec-irq-probing-bug.patch git-dvb.patch git-netdev-all.patch fix-for-serial-uart-lockup.patch qla2xxx-lock-ordering-fix.patch qla2xxx-lock-ordering-fix-warning-fix.patch swapless-pm-add-r-w-migration-entries-fix.patch i386-break-out-of-recursion-in-stackframe-walk.patch work-around-ppc64-bootup-bug-by-making-mutex-debugging-save-restore-irqs.patch kernel-kernel-cpuc-to-mutexes.patch cond-resched-might-sleep-fix.patch define-__raw_get_cpu_var-and-use-it.patch ide-cd-end-of-media-error-fix.patch time-clocksource-infrastructure.patch sched-comment-bitmap-size-accounting.patch sched-fix-interactive-ceiling-code.patch sched-implement-smpnice.patch sched-protect-calculation-of-max_pull-from-integer-wrap.patch sched-store-weighted-load-on-up.patch sched-add-discrete-weighted-cpu-load-function.patch sched-prevent-high-load-weight-tasks-suppressing-balancing.patch sched-improve-stability-of-smpnice-load-balancing.patch sched-improve-smpnice-load-balancing-when-load-per-task.patch smpnice-dont-consider-sched-groups-which-are-lightly-loaded-for-balancing.patch smpnice-dont-consider-sched-groups-which-are-lightly-loaded-for-balancing-fix.patch sched-modify-move_tasks-to-improve-load-balancing-outcomes.patch sched-avoid-unnecessarily-moving-highest-priority-task-move_tasks.patch sched-avoid-unnecessarily-moving-highest-priority-task-move_tasks-fix-2.patch sched_domain-handle-kmalloc-failure.patch sched_domain-handle-kmalloc-failure-fix.patch sched_domain-dont-use-gfp_atomic.patch sched_domain-use-kmalloc_node.patch sched_domain-allocate-sched_group-structures-dynamically.patch sched-add-above-background-load-function.patch mm-implement-swap-prefetching-fix.patch pi-futex-futex-code-cleanups.patch pi-futex-futex-code-cleanups-fix.patch pi-futex-introduce-debug_check_no_locks_freed.patch pi-futex-add-plist-implementation.patch pi-futex-scheduler-support-for-pi.patch pi-futex-rt-mutex-core.patch pi-futex-rt-mutex-core-fix-timeout-race.patch pi-futex-rt-mutex-docs.patch pi-futex-rt-mutex-debug.patch pi-futex-rt-mutex-tester.patch pi-futex-rt-mutex-futex-api.patch pi-futex-futex_lock_pi-futex_unlock_pi-support.patch pi-futex-v2.patch pi-futex-v3.patch pi-futex-patchset-v4.patch pi-futex-patchset-v4-update.patch pi-futex-patchset-v4-fix.patch rtmutex-remove-buggy-bug_on-in-pi-boosting-code.patch futex-pi-enforce-waiter-bit-when-owner-died-is-detected.patch rtmutex-debug-printk-correct-task-information.patch futex-pi-make-use-of-restart_block-when-interrupted.patch document-futex-pi-design.patch futex_requeue-optimization.patch reiser4.patch genirq-rename-desc-handler-to-desc-chip.patch genirq-rename-desc-handler-to-desc-chip-power-fix.patch genirq-rename-desc-handler-to-desc-chip-ia64-fix.patch genirq-sem2mutex-probe_sem-probing_active.patch genirq-cleanup-merge-irq_affinity-into-irq_desc.patch genirq-cleanup-remove-irq_descp.patch genirq-cleanup-remove-fastcall.patch genirq-cleanup-misc-code-cleanups.patch genirq-cleanup-reduce-irq_desc_t-use-mark-it-obsolete.patch genirq-cleanup-include-linux-irqh.patch genirq-cleanup-merge-irq_dir-smp_affinity_entry-into-irq_desc.patch genirq-cleanup-merge-pending_irq_cpumask-into-irq_desc.patch genirq-cleanup-turn-arch_has_irq_per_cpu-into-config_irq_per_cpu.patch genirq-debug-better-debug-printout-in-enable_irq.patch genirq-add-retrigger-irq-op-to-consolidate-hw_irq_resend.patch genirq-doc-comment-include-linux-irqh-structures.patch genirq-doc-handle_irq_event-and-__do_irq-comments.patch genirq-cleanup-no_irq_type-cleanups.patch genirq-doc-add-design-documentation.patch genirq-add-genirq-sw-irq-retrigger.patch genirq-add-irq_noprobe-support.patch genirq-add-irq_norequest-support.patch genirq-add-irq_noautoen-support.patch genirq-update-copyrights.patch genirq-core.patch genirq-add-irq-chip-support.patch genirq-add-handle_bad_irq.patch genirq-add-irq-wake-power-management-support.patch genirq-add-sa_trigger-support.patch genirq-cleanup-no_irq_type-no_irq_chip-rename.patch genirq-convert-the-x86_64-architecture-to-irq-chips.patch genirq-convert-the-i386-architecture-to-irq-chips.patch genirq-more-verbose-debugging-on-unexpected-irq-vectors.patch detect-atomic-counter-underflows.patch debug-shared-irqs.patch make-frame_pointer-default=y.patch mutex-subsystem-synchro-test-module.patch add-print_fatal_signals-support.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html