From: James Hogan Date: Tue, 12 Feb 2013 16:04:53 +0000 (+0000) Subject: metag: move irq enable out of irqflags.h on SMP X-Git-Tag: v3.9-rc1~7^2~9 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fa771d029af8f8a23089c97b6ab6a5745e98ad7e;p=pandora-kernel.git metag: move irq enable out of irqflags.h on SMP The SMP version of arch_local_irq_enable() uses preempt_disable(), but doesn't include causing the following errors on SMP when pstore/ftrace is enabled (caught by buildbot smp allyesconfig): In file included from include/linux/irqflags.h:15, from fs/pstore/ftrace.c:16: arch/metag/include/asm/irqflags.h: In function 'arch_local_irq_enable': arch/metag/include/asm/irqflags.h:84: error: implicit declaration of function 'preempt_disable' arch/metag/include/asm/irqflags.h:86: error: implicit declaration of function 'preempt_enable_no_resched' However cannot be easily included from as it can cause circular include dependencies in the !SMP case, and potentially in the SMP case in the future. Therefore move the SMP implementation of arch_local_irq_enable() into traps.c and use an inline version of get_trigger_mask() which is also defined in traps.c for SMP. This adds an extra layer of function call / stack push when preempt_disable needs to call other functions, however in the non-preemptive SMP case it should be about as fast, as it was already calling the get_trigger_mask() function which is now used inline. Signed-off-by: James Hogan --- Reading git-diff-tree failed