sh: dwarf unwinder support.
[deliverable/linux.git] / arch / sh / kernel / irq.c
index 3d09062f4682718b43ec607649ca466ddcc6f670..2bb43dc74f227c97dcc616dbc50fe41a7e82d25c 100644 (file)
@@ -14,6 +14,7 @@
 #include <asm/processor.h>
 #include <asm/machvec.h>
 #include <asm/uaccess.h>
+#include <asm/dwarf.h>
 #include <asm/thread_info.h>
 #include <cpu/mmu_context.h>
 
@@ -114,23 +115,6 @@ asmlinkage int do_IRQ(unsigned int irq, struct pt_regs *regs)
 #endif
 
        irq_enter();
-
-#ifdef CONFIG_DEBUG_STACKOVERFLOW
-       /* Debugging check for stack overflow: is there less than 1KB free? */
-       {
-               long sp;
-
-               __asm__ __volatile__ ("and r15, %0" :
-                                       "=r" (sp) : "0" (THREAD_SIZE - 1));
-
-               if (unlikely(sp < (sizeof(struct thread_info) + STACK_WARN))) {
-                       printk("do_IRQ: stack overflow: %ld\n",
-                              sp - sizeof(struct thread_info));
-                       dump_stack();
-               }
-       }
-#endif
-
        irq = irq_demux(intc_evt2irq(irq));
 
 #ifdef CONFIG_IRQSTACKS
@@ -278,6 +262,9 @@ void __init init_IRQ(void)
                sh_mv.mv_init_irq();
 
        irq_ctx_init(smp_processor_id());
+
+       /* This needs to be early, but not too early.. */
+       dwarf_unwinder_init();
 }
 
 #ifdef CONFIG_SPARSE_IRQ
This page took 0.029451 seconds and 5 git commands to generate.