Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a90f354709b372c8dcabe3cd6315a83da5927573
Commit:     a90f354709b372c8dcabe3cd6315a83da5927573
Parent:     e1fb4552ac938f2f70e9df2169b681594752bd85
Author:     Paul Mundt <[EMAIL PROTECTED]>
AuthorDate: Wed Oct 3 17:13:34 2007 +0900
Committer:  Paul Mundt <[EMAIL PROTECTED]>
CommitDate: Wed Oct 3 17:13:34 2007 +0900

    sh: kgdb section mismatches and tidying.
    
    The kgdb console setup was callable from a left-over deferred
    initialization path, which in turn depends on __init symbols. Since
    the deferred initialization was removed some time ago, kill off the
    rest of those remnants and move kgdb_init() and friends to __init.
    
    Signed-off-by: Paul Mundt <[EMAIL PROTECTED]>
---
 arch/sh/kernel/kgdb_stub.c |   45 ++-----------------------------------------
 include/asm-sh/kgdb.h      |   12 +---------
 2 files changed, 5 insertions(+), 52 deletions(-)

diff --git a/arch/sh/kernel/kgdb_stub.c b/arch/sh/kernel/kgdb_stub.c
index edd1ec2..27f64b9 100644
--- a/arch/sh/kernel/kgdb_stub.c
+++ b/arch/sh/kernel/kgdb_stub.c
@@ -150,13 +150,6 @@ struct kgdb_regs trap_registers;
 char kgdb_in_gdb_mode;
 char in_nmi;                   /* Set during NMI to prevent reentry */
 int kgdb_nofault;              /* Boolean to ignore bus errs (i.e. in GDB) */
-int kgdb_enabled = 1;          /* Default to enabled, cmdline can disable */
-
-/* Exposed for user access */
-struct task_struct *kgdb_current;
-unsigned int kgdb_g_imask;
-int kgdb_trapa_val;
-int kgdb_excode;
 
 /* Default values for SCI (can override via kernel args in setup.c) */
 #ifndef CONFIG_KGDB_DEFPORT
@@ -640,7 +633,6 @@ static void do_single_step(void)
 
        /* Flush and return */
        kgdb_flush_icache_range((long) addr, (long) addr + 2);
-       return;
 }
 
 /* Undo a single step */
@@ -815,14 +807,10 @@ static void set_regs_msg(void)
 /*
  * Bring up the ports..
  */
-static int kgdb_serial_setup(void)
+static int __init kgdb_serial_setup(void)
 {
-       extern int kgdb_console_setup(struct console *co, char *options);
        struct console dummy;
-
-       kgdb_console_setup(&dummy, 0);
-
-       return 0;
+       return kgdb_console_setup(&dummy, 0);
 }
 #else
 #define kgdb_serial_setup()    0
@@ -833,22 +821,6 @@ static void kgdb_command_loop(const int excep_code, const 
int trapa_value)
 {
        int sigval;
 
-       if (excep_code == NMI_VEC) {
-#ifndef CONFIG_KGDB_NMI
-               printk(KERN_NOTICE "KGDB: Ignoring unexpected NMI?\n");
-               return;
-#else /* CONFIG_KGDB_NMI */
-               if (!kgdb_enabled) {
-                       kgdb_enabled = 1;
-                       kgdb_init();
-               }
-#endif /* CONFIG_KGDB_NMI */
-       }
-
-       /* Ignore if we're disabled */
-       if (!kgdb_enabled)
-               return;
-
        /* Enter GDB mode (e.g. after detach) */
        if (!kgdb_in_gdb_mode) {
                /* Do serial setup, notify user, issue preemptive ack */
@@ -959,18 +931,10 @@ static void handle_exception(struct pt_regs *regs)
 
        /* Get excode for command loop call, user access */
        asm("stc r2_bank, %0":"=r"(excep_code));
-       kgdb_excode = excep_code;
-
-       /* Other interesting environment items for reference */
-       asm("stc r6_bank, %0":"=r"(kgdb_g_imask));
-       kgdb_current = current;
-       kgdb_trapa_val = trapa_value;
 
        /* Act on the exception */
        kgdb_command_loop(excep_code, trapa_value);
 
-       kgdb_current = NULL;
-
        /* Copy back the (maybe modified) registers */
        for (count = 0; count < 16; count++)
                regs->regs[count] = trap_registers.regs[count];
@@ -994,11 +958,8 @@ asmlinkage void kgdb_handle_exception(unsigned long r4, 
unsigned long r5,
 }
 
 /* Initialise the KGDB data structures and serial configuration */
-int kgdb_init(void)
+int __init kgdb_init(void)
 {
-       if (!kgdb_enabled)
-               return 1;
-
        in_nmi = 0;
        kgdb_nofault = 0;
        stepped_opcode = 0;
diff --git a/include/asm-sh/kgdb.h b/include/asm-sh/kgdb.h
index 74bd095..5334e86 100644
--- a/include/asm-sh/kgdb.h
+++ b/include/asm-sh/kgdb.h
@@ -19,8 +19,6 @@
 #include <asm/ptrace.h>
 #include <asm/cacheflush.h>
 
-struct console;
-
 /* Same as pt_regs but has vbr in place of syscall_nr */
 struct kgdb_regs {
         unsigned long regs[16];
@@ -35,10 +33,7 @@ struct kgdb_regs {
 
 /* State info */
 extern char kgdb_in_gdb_mode;
-extern int kgdb_done_init;
-extern int kgdb_enabled;
 extern int kgdb_nofault;       /* Ignore bus errors (in gdb mem access) */
-extern int kgdb_halt;          /* Execute initial breakpoint at startup */
 extern char in_nmi;            /* Debounce flag to prevent NMI reentry*/
 
 /* SCI */
@@ -59,6 +54,7 @@ extern kgdb_debug_hook_t  *kgdb_debug_hook;
 extern kgdb_bus_error_hook_t *kgdb_bus_err_hook;
 
 /* Console */
+struct console;
 void kgdb_console_write(struct console *co, const char *s, unsigned count);
 extern int kgdb_console_setup(struct console *, char *);
 
@@ -69,11 +65,7 @@ extern void    longjmp(jmp_buf __jmpb, int __retval);
 extern int     setjmp(jmp_buf __jmpb);
 
 /* Forced breakpoint */
-#define breakpoint()                                   \
-do {                                                   \
-       if (kgdb_enabled)                               \
-               __asm__ __volatile__("trapa   #0x3c");  \
-} while (0)
+#define breakpoint()   __asm__ __volatile__("trapa   #0x3c")
 
 /* KGDB should be able to flush all kernel text space */
 #if defined(CONFIG_CPU_SH4)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to