ARM: 7115/4: move __exception and friends to asm/exception.h
authorJamie Iles <jamie@jamieiles.com>
Sat, 8 Oct 2011 10:20:42 +0000 (11:20 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 17 Oct 2011 08:02:44 +0000 (09:02 +0100)
The definition of __exception_irq_entry for
CONFIG_FUNCTION_GRAPH_TRACER=y needs linux/ftrace.h, but this creates a
circular dependency with it's current home in asm/system.h. Create
asm/exception.h and update all current users.

v4: - rebase to rmk/for-next
v3: - remove redundant includes of linux/ftrace.h
v2: - document the usage restricitions of __exception*

Cc: Zoltan Devai <zdevai@gmail.com>
Signed-off-by: Jamie Iles <jamie@jamieiles.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/include/asm/exception.h [new file with mode: 0644]
arch/arm/include/asm/system.h
arch/arm/kernel/irq.c
arch/arm/kernel/smp.c
arch/arm/kernel/traps.c
arch/arm/mach-pxa/irq.c
arch/arm/mm/fault.c

diff --git a/arch/arm/include/asm/exception.h b/arch/arm/include/asm/exception.h
new file mode 100644 (file)
index 0000000..5abaf5b
--- /dev/null
@@ -0,0 +1,19 @@
+/*
+ * Annotations for marking C functions as exception handlers.
+ *
+ * These should only be used for C functions that are called from the low
+ * level exception entry code and not any intervening C code.
+ */
+#ifndef __ASM_ARM_EXCEPTION_H
+#define __ASM_ARM_EXCEPTION_H
+
+#include <linux/ftrace.h>
+
+#define __exception    __attribute__((section(".exception.text")))
+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
+#define __exception_irq_entry  __irq_entry
+#else
+#define __exception_irq_entry  __exception
+#endif
+
+#endif /* __ASM_ARM_EXCEPTION_H */
index 832888d0c20c263a761cc093bb96ae4977ed15bc..ed6b0499a10660bf571eaf12eb32a9f8f3b98d6f 100644 (file)
 
 #include <asm/outercache.h>
 
-#define __exception    __attribute__((section(".exception.text")))
-#ifdef CONFIG_FUNCTION_GRAPH_TRACER
-#define __exception_irq_entry  __irq_entry
-#else
-#define __exception_irq_entry  __exception
-#endif
-
 struct thread_info;
 struct task_struct;
 
index de3dcab8610bbbf6776d1406e3cb90cdb85d574f..53919b230e8ba45bbaa431c408b9a6c354fe3cd7 100644 (file)
@@ -35,8 +35,8 @@
 #include <linux/list.h>
 #include <linux/kallsyms.h>
 #include <linux/proc_fs.h>
-#include <linux/ftrace.h>
 
+#include <asm/exception.h>
 #include <asm/system.h>
 #include <asm/mach/arch.h>
 #include <asm/mach/irq.h>
index 0949007d09a8ebd60733dafd83a7162d40b345fa..35417d0fb8abdf5a5a173012597b750f15edae97 100644 (file)
@@ -16,7 +16,6 @@
 #include <linux/cache.h>
 #include <linux/profile.h>
 #include <linux/errno.h>
-#include <linux/ftrace.h>
 #include <linux/mm.h>
 #include <linux/err.h>
 #include <linux/cpu.h>
@@ -31,6 +30,7 @@
 #include <asm/cacheflush.h>
 #include <asm/cpu.h>
 #include <asm/cputype.h>
+#include <asm/exception.h>
 #include <asm/topology.h>
 #include <asm/mmu_context.h>
 #include <asm/pgtable.h>
index bc9f9da782cb85ff3eb0171b9c0d5b8630397c90..210382555af1a6b6e4eff1003377854a3af642a2 100644 (file)
@@ -27,6 +27,7 @@
 
 #include <linux/atomic.h>
 #include <asm/cacheflush.h>
+#include <asm/exception.h>
 #include <asm/system.h>
 #include <asm/unistd.h>
 #include <asm/traps.h>
index b09e848eb6c6f0ae27356dc3feedb8ab790c4835..ca607571782426bd05ecc087b8644563c196ec64 100644 (file)
@@ -19,6 +19,8 @@
 #include <linux/io.h>
 #include <linux/irq.h>
 
+#include <asm/exception.h>
+
 #include <mach/hardware.h>
 #include <mach/irqs.h>
 #include <mach/gpio.h>
index 3b5ea68acbb8bead82c3202b8c901141e7ca2d2e..aa33949fef608cb4c5b7b9a76e0f4020ba0f1db6 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/highmem.h>
 #include <linux/perf_event.h>
 
+#include <asm/exception.h>
 #include <asm/system.h>
 #include <asm/pgtable.h>
 #include <asm/tlbflush.h>