]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - arch/arm/include/asm/traps.h
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / arch / arm / include / asm / traps.h
index 491960bf42602e9c509a32d382815a42b3089047..1b960d5ef6a5d1bdb1afd5bc804136aa61f1e19a 100644 (file)
@@ -15,16 +15,37 @@ struct undef_hook {
 void register_undef_hook(struct undef_hook *hook);
 void unregister_undef_hook(struct undef_hook *hook);
 
+#ifdef CONFIG_FUNCTION_GRAPH_TRACER
+static inline int __in_irqentry_text(unsigned long ptr)
+{
+       extern char __irqentry_text_start[];
+       extern char __irqentry_text_end[];
+
+       return ptr >= (unsigned long)&__irqentry_text_start &&
+              ptr < (unsigned long)&__irqentry_text_end;
+}
+#else
+static inline int __in_irqentry_text(unsigned long ptr)
+{
+       return 0;
+}
+#endif
+
 static inline int in_exception_text(unsigned long ptr)
 {
        extern char __exception_text_start[];
        extern char __exception_text_end[];
+       int in;
 
-       return ptr >= (unsigned long)&__exception_text_start &&
-              ptr < (unsigned long)&__exception_text_end;
+       in = ptr >= (unsigned long)&__exception_text_start &&
+            ptr < (unsigned long)&__exception_text_end;
+
+       return in ? : __in_irqentry_text(ptr);
 }
 
 extern void __init early_trap_init(void);
 extern void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame);
 
+extern void *vectors_page;
+
 #endif