sh: Kill off kgdb's magical NMI debouncing.
authorPaul Mundt <lethal@linux-sh.org>
Tue, 1 Sep 2009 08:45:35 +0000 (17:45 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Tue, 1 Sep 2009 08:45:35 +0000 (17:45 +0900)
The kgdb stub has traditionally tied in to the NMI slot, and manually
handled debounce. Now that we have a generic way to do this instead, all
of the stub-specific debounce silliness can be killed off.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/include/asm/kgdb.h
arch/sh/kernel/cpu/sh3/entry.S
arch/sh/kernel/kgdb.c

index 72704ed..4235e22 100644 (file)
@@ -30,9 +30,6 @@ static inline void arch_kgdb_breakpoint(void)
        __asm__ __volatile__ ("trapa #0x3c\n");
 }
 
-/* State info */
-extern char in_nmi;            /* Debounce flag to prevent NMI reentry*/
-
 #define BUFMAX                 2048
 
 #define CACHE_FLUSH_IS_SAFE    1
index d1142d3..0151933 100644 (file)
  *     syscall #
  *
  */
-#if defined(CONFIG_KGDB)
-NMI_VEC = 0x1c0                        ! Must catch early for debounce
-#endif
-
 /* Offsets to the stack */
 OFF_R0  =  0           /* Return value. New ABI also arg4 */
 OFF_R1  =  4           /* New ABI: arg5 */
@@ -71,7 +67,6 @@ OFF_PC  =  (16*4)
 OFF_SR =  (16*4+8)
 OFF_TRA        =  (16*4+6*4)
 
-
 #define k0     r0
 #define k1     r1
 #define k2     r2
@@ -281,21 +276,12 @@ restore_all:
 6:     or      k0, k2                  ! Set the IMASK-bits
        ldc     k2, ssr
        !
-#if defined(CONFIG_KGDB)
-       ! Clear in_nmi
-       mov.l   6f, k0
-       mov     #0, k1
-       mov.b   k1, @k0
-#endif
        mov     k4, r15
        rte
         nop
 
        .align  2
 5:     .long   0x00001000      ! DSP
-#ifdef CONFIG_KGDB
-6:     .long   in_nmi
-#endif
 7:     .long   0x30000000
 
 ! common exception handler
@@ -487,23 +473,6 @@ ENTRY(save_low_regs)
 !
        .balign         512,0,512
 ENTRY(handle_interrupt)
-#if defined(CONFIG_KGDB)
-       mov.l   2f, k2
-       ! Debounce (filter nested NMI)
-       mov.l   @k2, k0
-       mov.l   9f, k1
-       cmp/eq  k1, k0
-       bf      11f
-       mov.l   10f, k1
-       tas.b   @k1
-       bt      11f
-       rte
-        nop
-       .align  2
-9:     .long   NMI_VEC
-10:    .long   in_nmi
-11:
-#endif /* defined(CONFIG_KGDB) */
        sts     pr, k3          ! save original pr value in k3
        mova    exception_data, k0
 
index d29de78..3e532d0 100644 (file)
@@ -15,8 +15,6 @@
 #include <linux/io.h>
 #include <asm/cacheflush.h>
 
-char in_nmi = 0;       /* Set during NMI to prevent re-entry */
-
 /* Macros for single step instruction identification */
 #define OPCODE_BT(op)          (((op) & 0xff00) == 0x8900)
 #define OPCODE_BF(op)          (((op) & 0xff00) == 0x8b00)