The patch titled AVR32: Add support for irq-flags state tracing has been removed from the -mm tree. Its filename is avr32-add-support-for-irq-flags-state-tracing.patch This patch was dropped because it was folded into avr32-arch.patch ------------------------------------------------------ Subject: AVR32: Add support for irq-flags state tracing From: Haavard Skinnemoen <hskinnemoen@xxxxxxxxx> Move the irq-flags manipulation to asm/irqflags.h, add the required raw_ prefix and define TRACE_IRQFLAGS_SUPPORT. Signed-off-by: Haavard Skinnemoen <hskinnemoen@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- arch/avr32/Kconfig.debug | 4 + include/asm-avr32/irqflags.h | 68 +++++++++++++++++++++++++++++++++ include/asm-avr32/system.h | 32 --------------- 3 files changed, 73 insertions(+), 31 deletions(-) diff -puN arch/avr32/Kconfig.debug~avr32-add-support-for-irq-flags-state-tracing arch/avr32/Kconfig.debug --- a/arch/avr32/Kconfig.debug~avr32-add-support-for-irq-flags-state-tracing +++ a/arch/avr32/Kconfig.debug @@ -1,5 +1,9 @@ menu "Kernel hacking" +config TRACE_IRQFLAGS_SUPPORT + bool + default y + source "lib/Kconfig.debug" config KPROBES diff -puN /dev/null include/asm-avr32/irqflags.h --- /dev/null +++ a/include/asm-avr32/irqflags.h @@ -0,0 +1,68 @@ +/* + * Copyright (C) 2004-2006 Atmel Corporation + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ +#ifndef __ASM_AVR32_IRQFLAGS_H +#define __ASM_AVR32_IRQFLAGS_H + +#include <asm/sysreg.h> + +static inline unsigned long __raw_local_save_flags(void) +{ + return sysreg_read(SR); +} + +#define raw_local_save_flags(x) \ + do { (x) = __raw_local_save_flags(); } while (0) + +/* + * This will restore ALL status register flags, not only the interrupt + * mask flag. + * + * The empty asm statement informs the compiler of this fact while + * also serving as a barrier. + */ +static inline void raw_local_irq_restore(unsigned long flags) +{ + sysreg_write(SR, flags); + asm volatile("" : : : "memory", "cc"); +} + +static inline void raw_local_irq_disable(void) +{ + asm volatile("ssrf %0" : : "n"(SYSREG_GM_OFFSET) : "memory"); +} + +static inline void raw_local_irq_enable(void) +{ + asm volatile("csrf %0" : : "n"(SYSREG_GM_OFFSET) : "memory"); +} + +static inline int raw_irqs_disabled_flags(unsigned long flags) +{ + return (flags & SYSREG_BIT(GM)) != 0; +} + +static inline int raw_irqs_disabled(void) +{ + unsigned long flags = __raw_local_save_flags(); + + return raw_irqs_disabled_flags(flags); +} + +static inline unsigned long __raw_local_irq_save(void) +{ + unsigned long flags = __raw_local_save_flags(); + + raw_local_irq_disable(); + + return flags; +} + +#define raw_local_irq_save(flags) \ + do { (flags) = __raw_local_irq_save(); } while (0) + +#endif /* __ASM_AVR32_IRQFLAGS_H */ diff -puN include/asm-avr32/system.h~avr32-add-support-for-irq-flags-state-tracing include/asm-avr32/system.h --- a/include/asm-avr32/system.h~avr32-add-support-for-irq-flags-state-tracing +++ a/include/asm-avr32/system.h @@ -69,37 +69,7 @@ extern struct task_struct *__switch_to(s # define smp_read_barrier_depends() do { } while(0) #endif -/* Interrupt Control */ - -#define local_irq_enable() \ - asm volatile("csrf %0" : : "n"(SR_GM_BIT) : "memory") -#define local_irq_disable() \ - asm volatile ("ssrf %0" : : "n"(SR_GM_BIT) : "memory") -#define local_save_flags(x) ((x) = sysreg_read(SR)) -#define irqs_disabled() \ - ({ \ - unsigned long flags; \ - local_save_flags(flags); \ - ((flags & SR_GM) != 0); \ - }) - -/* - * This will restore ALL status register flags, not only the interrupt - * mask flag. - * - * The empty asm statement informs the compiler of this fact (it also - * serves as a barrier). - */ -#define local_irq_restore(x) \ - do { \ - sysreg_write(SR, (x)); \ - asm volatile("" : : : "memory", "cc"); \ - } while(0) -#define local_irq_save(flags) \ - do { \ - local_save_flags(flags); \ - local_irq_disable(); \ - } while(0) +#include <linux/irqflags.h> extern void __xchg_called_with_bad_pointer(void); _ Patches currently in -mm which might be from hskinnemoen@xxxxxxxxx are origin.patch avr32-arch.patch avr32-add-support-for-irq-flags-state-tracing.patch avr32-turn-off-support-for-discontigmem-and-sparsemem.patch avr32-always-enable-config_embedded.patch avr32-export-the-find__bit-functions.patch avr32-add-defconfig-for-at32stk1002.patch avr32-use-autoconf-instead-of-marker.patch avr32-dont-assume-anything-about-max_nr_zones.patch avr32-add-i-o-port-access-primitives.patch avr32-use-linux-pfnh.patch avr32-kill-config_discontigmem-support-completely.patch avr32-fix-bug-in-__avr32_asr64.patch avr32-switch-to-generic-timekeeping-framework.patch avr32-set-kbuild_defconfig.patch avr32-kprobes-compile-fix.patch avr32-asm-ioh-should-include-asm-byteorderh.patch avr32-fix-output-constraints-in-asm-bitopsh.patch avr32-standardize-pxx_page-macros-fix.patch avr32-rename-at32stk100x-atstk100x.patch avr32-dont-leave-dbe-set-when-resetting-cpu.patch avr32-make-prot_write-prot_exec-imply-prot_read.patch avr32-remove-set_wmb.patch avr32-use-parse_early_param.patch avr32-fix-exported-headers.patch avr32-fix-__const_udelay-overflow-bug.patch remove-zone_dma-remains-from-avr32.patch avr32-mtd-static-memory-controller-driver-try-2.patch avr32-mtd-at49bv6416-platform-device-for-atstk1000.patch directed-yield-cpu_relax-variants-for-spinlocks-and-rw-locks.patch generic-ioremap_page_range-implementation.patch generic-ioremap_page_range-implementation-fix.patch generic-ioremap_page_range-implementation-nommu-fix.patch generic-ioremap_page_range-flush_cache_vmap.patch generic-ioremap_page_range-alpha-conversion.patch generic-ioremap_page_range-avr32-conversion.patch generic-ioremap_page_range-cris-conversion.patch generic-ioremap_page_range-i386-conversion.patch generic-ioremap_page_range-i386-conversion-fix.patch generic-ioremap_page_range-m32r-conversion.patch generic-ioremap_page_range-mips-conversion.patch generic-ioremap_page_range-mips-conversion-fix.patch generic-ioremap_page_range-parisc-conversion.patch generic-ioremap_page_range-s390-conversion.patch generic-ioremap_page_range-sh-conversion.patch generic-ioremap_page_range-sh64-conversion.patch generic-ioremap_page_range-x86_64-conversion.patch generic-ioremap_page_range-x86_64-conversion-fix.patch avr32-implement-kernel_execve.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