The patch titled IRQ: Fix AVR32 breakage has been added to the -mm tree. Its filename is irq-fix-avr32-breakage.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: IRQ: Fix AVR32 breakage From: Haavard Skinnemoen <hskinnemoen@xxxxxxxxx> Make the necessary changes to AVR32 required by the irq regs stuff. Signed-off-by: Haavard Skinnemoen <hskinnemoen@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- arch/avr32/kernel/time.c | 10 +++++----- arch/avr32/mach-at32ap/extint.c | 5 ++--- arch/avr32/mach-at32ap/intc.c | 7 ++++++- include/asm-avr32/irq_regs.h | 1 + 4 files changed, 14 insertions(+), 9 deletions(-) diff -puN arch/avr32/kernel/time.c~irq-fix-avr32-breakage arch/avr32/kernel/time.c --- a/arch/avr32/kernel/time.c~irq-fix-avr32-breakage +++ a/arch/avr32/kernel/time.c @@ -124,15 +124,15 @@ unsigned long long sched_clock(void) * * In UP mode, it is invoked from the (global) timer_interrupt. */ -static void local_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +static void local_timer_interrupt(int irq, void *dev_id) { if (current->pid) - profile_tick(CPU_PROFILING, regs); - update_process_times(user_mode(regs)); + profile_tick(CPU_PROFILING); + update_process_times(user_mode(get_irq_regs())); } static irqreturn_t -timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) +timer_interrupt(int irq, void *dev_id) { unsigned int count; @@ -157,7 +157,7 @@ timer_interrupt(int irq, void *dev_id, s * * SMP is not supported yet. */ - local_timer_interrupt(irq, dev_id, regs); + local_timer_interrupt(irq, dev_id); return IRQ_HANDLED; } diff -puN arch/avr32/mach-at32ap/extint.c~irq-fix-avr32-breakage arch/avr32/mach-at32ap/extint.c --- a/arch/avr32/mach-at32ap/extint.c~irq-fix-avr32-breakage +++ a/arch/avr32/mach-at32ap/extint.c @@ -102,8 +102,7 @@ struct irq_chip eim_chip = { .set_type = eim_set_irq_type, }; -static void demux_eim_irq(unsigned int irq, struct irq_desc *desc, - struct pt_regs *regs) +static void demux_eim_irq(unsigned int irq, struct irq_desc *desc) { struct at32_sm *sm = desc->handler_data; struct irq_desc *ext_desc; @@ -121,7 +120,7 @@ static void demux_eim_irq(unsigned int i ext_irq = i + sm->eim_first_irq; ext_desc = irq_desc + ext_irq; - ext_desc->handle_irq(ext_irq, ext_desc, regs); + ext_desc->handle_irq(ext_irq, ext_desc); } spin_unlock(&sm->lock); diff -puN arch/avr32/mach-at32ap/intc.c~irq-fix-avr32-breakage arch/avr32/mach-at32ap/intc.c --- a/arch/avr32/mach-at32ap/intc.c~irq-fix-avr32-breakage +++ a/arch/avr32/mach-at32ap/intc.c @@ -52,16 +52,19 @@ static struct intc intc0 = { asmlinkage void do_IRQ(int level, struct pt_regs *regs) { struct irq_desc *desc; + struct pt_regs *old_regs; unsigned int irq; unsigned long status_reg; local_irq_disable(); + old_regs = set_irq_regs(regs); + irq_enter(); irq = intc_readl(&intc0, INTCAUSE0 - 4 * level); desc = irq_desc + irq; - desc->handle_irq(irq, desc, regs); + desc->handle_irq(irq, desc); /* * Clear all interrupt level masks so that we may handle @@ -75,6 +78,8 @@ asmlinkage void do_IRQ(int level, struct sysreg_write(SR, status_reg); irq_exit(); + + set_irq_regs(old_regs); } void __init init_IRQ(void) diff -puN /dev/null include/asm-avr32/irq_regs.h --- /dev/null +++ a/include/asm-avr32/irq_regs.h @@ -0,0 +1 @@ +#include <asm-generic/irq_regs.h> _ Patches currently in -mm which might be from hskinnemoen@xxxxxxxxx are irq-fix-avr32-breakage.patch generic-ioremap_page_range-mips-conversion.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 - 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