aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/linux/kdb.h10
-rw-r--r--kernel/debug/kdb/kdb_bp.c14
-rw-r--r--kernel/debug/kdb/kdb_main.c86
-rw-r--r--kernel/trace/trace_kdb.c2
4 files changed, 56 insertions, 56 deletions
diff --git a/include/linux/kdb.h b/include/linux/kdb.h
index e650f79aa414..32d2f407981d 100644
--- a/include/linux/kdb.h
+++ b/include/linux/kdb.h
@@ -146,17 +146,17 @@ static inline const char *kdb_walk_kallsyms(loff_t *pos)
146 146
147/* Dynamic kdb shell command registration */ 147/* Dynamic kdb shell command registration */
148extern int kdb_register(char *, kdb_func_t, char *, char *, short); 148extern int kdb_register(char *, kdb_func_t, char *, char *, short);
149extern int kdb_register_repeat(char *, kdb_func_t, char *, char *, 149extern int kdb_register_flags(char *, kdb_func_t, char *, char *,
150 short, kdb_cmdflags_t); 150 short, kdb_cmdflags_t);
151extern int kdb_unregister(char *); 151extern int kdb_unregister(char *);
152#else /* ! CONFIG_KGDB_KDB */ 152#else /* ! CONFIG_KGDB_KDB */
153static inline __printf(1, 2) int kdb_printf(const char *fmt, ...) { return 0; } 153static inline __printf(1, 2) int kdb_printf(const char *fmt, ...) { return 0; }
154static inline void kdb_init(int level) {} 154static inline void kdb_init(int level) {}
155static inline int kdb_register(char *cmd, kdb_func_t func, char *usage, 155static inline int kdb_register(char *cmd, kdb_func_t func, char *usage,
156 char *help, short minlen) { return 0; } 156 char *help, short minlen) { return 0; }
157static inline int kdb_register_repeat(char *cmd, kdb_func_t func, char *usage, 157static inline int kdb_register_flags(char *cmd, kdb_func_t func, char *usage,
158 char *help, short minlen, 158 char *help, short minlen,
159 kdb_cmdflags_t flags) { return 0; } 159 kdb_cmdflags_t flags) { return 0; }
160static inline int kdb_unregister(char *cmd) { return 0; } 160static inline int kdb_unregister(char *cmd) { return 0; }
161#endif /* CONFIG_KGDB_KDB */ 161#endif /* CONFIG_KGDB_KDB */
162enum { 162enum {
diff --git a/kernel/debug/kdb/kdb_bp.c b/kernel/debug/kdb/kdb_bp.c
index b20d544f20c2..59536661c7b9 100644
--- a/kernel/debug/kdb/kdb_bp.c
+++ b/kernel/debug/kdb/kdb_bp.c
@@ -531,21 +531,21 @@ void __init kdb_initbptab(void)
531 for (i = 0, bp = kdb_breakpoints; i < KDB_MAXBPT; i++, bp++) 531 for (i = 0, bp = kdb_breakpoints; i < KDB_MAXBPT; i++, bp++)
532 bp->bp_free = 1; 532 bp->bp_free = 1;
533 533
534 kdb_register_repeat("bp", kdb_bp, "[<vaddr>]", 534 kdb_register_flags("bp", kdb_bp, "[<vaddr>]",
535 "Set/Display breakpoints", 0, KDB_REPEAT_NO_ARGS); 535 "Set/Display breakpoints", 0, KDB_REPEAT_NO_ARGS);
536 kdb_register_repeat("bl", kdb_bp, "[<vaddr>]", 536 kdb_register_flags("bl", kdb_bp, "[<vaddr>]",
537 "Display breakpoints", 0, KDB_REPEAT_NO_ARGS); 537 "Display breakpoints", 0, KDB_REPEAT_NO_ARGS);
538 if (arch_kgdb_ops.flags & KGDB_HW_BREAKPOINT) 538 if (arch_kgdb_ops.flags & KGDB_HW_BREAKPOINT)
539 kdb_register_repeat("bph", kdb_bp, "[<vaddr>]", 539 kdb_register_flags("bph", kdb_bp, "[<vaddr>]",
540 "[datar [length]|dataw [length]] Set hw brk", 0, KDB_REPEAT_NO_ARGS); 540 "[datar [length]|dataw [length]] Set hw brk", 0, KDB_REPEAT_NO_ARGS);
541 kdb_register_repeat("bc", kdb_bc, "<bpnum>", 541 kdb_register_flags("bc", kdb_bc, "<bpnum>",
542 "Clear Breakpoint", 0, KDB_REPEAT_NONE); 542 "Clear Breakpoint", 0, KDB_REPEAT_NONE);
543 kdb_register_repeat("be", kdb_bc, "<bpnum>", 543 kdb_register_flags("be", kdb_bc, "<bpnum>",
544 "Enable Breakpoint", 0, KDB_REPEAT_NONE); 544 "Enable Breakpoint", 0, KDB_REPEAT_NONE);
545 kdb_register_repeat("bd", kdb_bc, "<bpnum>", 545 kdb_register_flags("bd", kdb_bc, "<bpnum>",
546 "Disable Breakpoint", 0, KDB_REPEAT_NONE); 546 "Disable Breakpoint", 0, KDB_REPEAT_NONE);
547 547
548 kdb_register_repeat("ss", kdb_ss, "", 548 kdb_register_flags("ss", kdb_ss, "",
549 "Single Step", 1, KDB_REPEAT_NO_ARGS); 549 "Single Step", 1, KDB_REPEAT_NO_ARGS);
550 /* 550 /*
551 * Architecture dependent initialization. 551 * Architecture dependent initialization.
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
index 41966b5f86b7..070f1ff358d2 100644
--- a/kernel/debug/kdb/kdb_main.c
+++ b/kernel/debug/kdb/kdb_main.c
@@ -2629,7 +2629,7 @@ static int kdb_grep_help(int argc, const char **argv)
2629} 2629}
2630 2630
2631/* 2631/*
2632 * kdb_register_repeat - This function is used to register a kernel 2632 * kdb_register_flags - This function is used to register a kernel
2633 * debugger command. 2633 * debugger command.
2634 * Inputs: 2634 * Inputs:
2635 * cmd Command name 2635 * cmd Command name
@@ -2641,12 +2641,12 @@ static int kdb_grep_help(int argc, const char **argv)
2641 * zero for success, one if a duplicate command. 2641 * zero for success, one if a duplicate command.
2642 */ 2642 */
2643#define kdb_command_extend 50 /* arbitrary */ 2643#define kdb_command_extend 50 /* arbitrary */
2644int kdb_register_repeat(char *cmd, 2644int kdb_register_flags(char *cmd,
2645 kdb_func_t func, 2645 kdb_func_t func,
2646 char *usage, 2646 char *usage,
2647 char *help, 2647 char *help,
2648 short minlen, 2648 short minlen,
2649 kdb_cmdflags_t flags) 2649 kdb_cmdflags_t flags)
2650{ 2650{
2651 int i; 2651 int i;
2652 kdbtab_t *kp; 2652 kdbtab_t *kp;
@@ -2699,13 +2699,13 @@ int kdb_register_repeat(char *cmd,
2699 2699
2700 return 0; 2700 return 0;
2701} 2701}
2702EXPORT_SYMBOL_GPL(kdb_register_repeat); 2702EXPORT_SYMBOL_GPL(kdb_register_flags);
2703 2703
2704 2704
2705/* 2705/*
2706 * kdb_register - Compatibility register function for commands that do 2706 * kdb_register - Compatibility register function for commands that do
2707 * not need to specify a repeat state. Equivalent to 2707 * not need to specify a repeat state. Equivalent to
2708 * kdb_register_repeat with KDB_REPEAT_NONE. 2708 * kdb_register_flags with KDB_REPEAT_NONE.
2709 * Inputs: 2709 * Inputs:
2710 * cmd Command name 2710 * cmd Command name
2711 * func Function to execute the command 2711 * func Function to execute the command
@@ -2720,8 +2720,8 @@ int kdb_register(char *cmd,
2720 char *help, 2720 char *help,
2721 short minlen) 2721 short minlen)
2722{ 2722{
2723 return kdb_register_repeat(cmd, func, usage, help, minlen, 2723 return kdb_register_flags(cmd, func, usage, help, minlen,
2724 KDB_REPEAT_NONE); 2724 KDB_REPEAT_NONE);
2725} 2725}
2726EXPORT_SYMBOL_GPL(kdb_register); 2726EXPORT_SYMBOL_GPL(kdb_register);
2727 2727
@@ -2763,79 +2763,79 @@ static void __init kdb_inittab(void)
2763 for_each_kdbcmd(kp, i) 2763 for_each_kdbcmd(kp, i)
2764 kp->cmd_name = NULL; 2764 kp->cmd_name = NULL;
2765 2765
2766 kdb_register_repeat("md", kdb_md, "<vaddr>", 2766 kdb_register_flags("md", kdb_md, "<vaddr>",
2767 "Display Memory Contents, also mdWcN, e.g. md8c1", 1, 2767 "Display Memory Contents, also mdWcN, e.g. md8c1", 1,
2768 KDB_REPEAT_NO_ARGS); 2768 KDB_REPEAT_NO_ARGS);
2769 kdb_register_repeat("mdr", kdb_md, "<vaddr> <bytes>", 2769 kdb_register_flags("mdr", kdb_md, "<vaddr> <bytes>",
2770 "Display Raw Memory", 0, KDB_REPEAT_NO_ARGS); 2770 "Display Raw Memory", 0, KDB_REPEAT_NO_ARGS);
2771 kdb_register_repeat("mdp", kdb_md, "<paddr> <bytes>", 2771 kdb_register_flags("mdp", kdb_md, "<paddr> <bytes>",
2772 "Display Physical Memory", 0, KDB_REPEAT_NO_ARGS); 2772 "Display Physical Memory", 0, KDB_REPEAT_NO_ARGS);
2773 kdb_register_repeat("mds", kdb_md, "<vaddr>", 2773 kdb_register_flags("mds", kdb_md, "<vaddr>",
2774 "Display Memory Symbolically", 0, KDB_REPEAT_NO_ARGS); 2774 "Display Memory Symbolically", 0, KDB_REPEAT_NO_ARGS);
2775 kdb_register_repeat("mm", kdb_mm, "<vaddr> <contents>", 2775 kdb_register_flags("mm", kdb_mm, "<vaddr> <contents>",
2776 "Modify Memory Contents", 0, KDB_REPEAT_NO_ARGS); 2776 "Modify Memory Contents", 0, KDB_REPEAT_NO_ARGS);
2777 kdb_register_repeat("go", kdb_go, "[<vaddr>]", 2777 kdb_register_flags("go", kdb_go, "[<vaddr>]",
2778 "Continue Execution", 1, KDB_REPEAT_NONE); 2778 "Continue Execution", 1, KDB_REPEAT_NONE);
2779 kdb_register_repeat("rd", kdb_rd, "", 2779 kdb_register_flags("rd", kdb_rd, "",
2780 "Display Registers", 0, KDB_REPEAT_NONE); 2780 "Display Registers", 0, KDB_REPEAT_NONE);
2781 kdb_register_repeat("rm", kdb_rm, "<reg> <contents>", 2781 kdb_register_flags("rm", kdb_rm, "<reg> <contents>",
2782 "Modify Registers", 0, KDB_REPEAT_NONE); 2782 "Modify Registers", 0, KDB_REPEAT_NONE);
2783 kdb_register_repeat("ef", kdb_ef, "<vaddr>", 2783 kdb_register_flags("ef", kdb_ef, "<vaddr>",
2784 "Display exception frame", 0, KDB_REPEAT_NONE); 2784 "Display exception frame", 0, KDB_REPEAT_NONE);
2785 kdb_register_repeat("bt", kdb_bt, "[<vaddr>]", 2785 kdb_register_flags("bt", kdb_bt, "[<vaddr>]",
2786 "Stack traceback", 1, KDB_REPEAT_NONE); 2786 "Stack traceback", 1, KDB_REPEAT_NONE);
2787 kdb_register_repeat("btp", kdb_bt, "<pid>", 2787 kdb_register_flags("btp", kdb_bt, "<pid>",
2788 "Display stack for process <pid>", 0, KDB_REPEAT_NONE); 2788 "Display stack for process <pid>", 0, KDB_REPEAT_NONE);
2789 kdb_register_repeat("bta", kdb_bt, "[D|R|S|T|C|Z|E|U|I|M|A]", 2789 kdb_register_flags("bta", kdb_bt, "[D|R|S|T|C|Z|E|U|I|M|A]",
2790 "Backtrace all processes matching state flag", 0, KDB_REPEAT_NONE); 2790 "Backtrace all processes matching state flag", 0, KDB_REPEAT_NONE);
2791 kdb_register_repeat("btc", kdb_bt, "", 2791 kdb_register_flags("btc", kdb_bt, "",
2792 "Backtrace current process on each cpu", 0, KDB_REPEAT_NONE); 2792 "Backtrace current process on each cpu", 0, KDB_REPEAT_NONE);
2793 kdb_register_repeat("btt", kdb_bt, "<vaddr>", 2793 kdb_register_flags("btt", kdb_bt, "<vaddr>",
2794 "Backtrace process given its struct task address", 0, 2794 "Backtrace process given its struct task address", 0,
2795 KDB_REPEAT_NONE); 2795 KDB_REPEAT_NONE);
2796 kdb_register_repeat("env", kdb_env, "", 2796 kdb_register_flags("env", kdb_env, "",
2797 "Show environment variables", 0, KDB_REPEAT_NONE); 2797 "Show environment variables", 0, KDB_REPEAT_NONE);
2798 kdb_register_repeat("set", kdb_set, "", 2798 kdb_register_flags("set", kdb_set, "",
2799 "Set environment variables", 0, KDB_REPEAT_NONE); 2799 "Set environment variables", 0, KDB_REPEAT_NONE);
2800 kdb_register_repeat("help", kdb_help, "", 2800 kdb_register_flags("help", kdb_help, "",
2801 "Display Help Message", 1, KDB_REPEAT_NONE); 2801 "Display Help Message", 1, KDB_REPEAT_NONE);
2802 kdb_register_repeat("?", kdb_help, "", 2802 kdb_register_flags("?", kdb_help, "",
2803 "Display Help Message", 0, KDB_REPEAT_NONE); 2803 "Display Help Message", 0, KDB_REPEAT_NONE);
2804 kdb_register_repeat("cpu", kdb_cpu, "<cpunum>", 2804 kdb_register_flags("cpu", kdb_cpu, "<cpunum>",
2805 "Switch to new cpu", 0, KDB_REPEAT_NONE); 2805 "Switch to new cpu", 0, KDB_REPEAT_NONE);
2806 kdb_register_repeat("kgdb", kdb_kgdb, "", 2806 kdb_register_flags("kgdb", kdb_kgdb, "",
2807 "Enter kgdb mode", 0, KDB_REPEAT_NONE); 2807 "Enter kgdb mode", 0, KDB_REPEAT_NONE);
2808 kdb_register_repeat("ps", kdb_ps, "[<flags>|A]", 2808 kdb_register_flags("ps", kdb_ps, "[<flags>|A]",
2809 "Display active task list", 0, KDB_REPEAT_NONE); 2809 "Display active task list", 0, KDB_REPEAT_NONE);
2810 kdb_register_repeat("pid", kdb_pid, "<pidnum>", 2810 kdb_register_flags("pid", kdb_pid, "<pidnum>",
2811 "Switch to another task", 0, KDB_REPEAT_NONE); 2811 "Switch to another task", 0, KDB_REPEAT_NONE);
2812 kdb_register_repeat("reboot", kdb_reboot, "", 2812 kdb_register_flags("reboot", kdb_reboot, "",
2813 "Reboot the machine immediately", 0, KDB_REPEAT_NONE); 2813 "Reboot the machine immediately", 0, KDB_REPEAT_NONE);
2814#if defined(CONFIG_MODULES) 2814#if defined(CONFIG_MODULES)
2815 kdb_register_repeat("lsmod", kdb_lsmod, "", 2815 kdb_register_flags("lsmod", kdb_lsmod, "",
2816 "List loaded kernel modules", 0, KDB_REPEAT_NONE); 2816 "List loaded kernel modules", 0, KDB_REPEAT_NONE);
2817#endif 2817#endif
2818#if defined(CONFIG_MAGIC_SYSRQ) 2818#if defined(CONFIG_MAGIC_SYSRQ)
2819 kdb_register_repeat("sr", kdb_sr, "<key>", 2819 kdb_register_flags("sr", kdb_sr, "<key>",
2820 "Magic SysRq key", 0, KDB_REPEAT_NONE); 2820 "Magic SysRq key", 0, KDB_REPEAT_NONE);
2821#endif 2821#endif
2822#if defined(CONFIG_PRINTK) 2822#if defined(CONFIG_PRINTK)
2823 kdb_register_repeat("dmesg", kdb_dmesg, "[lines]", 2823 kdb_register_flags("dmesg", kdb_dmesg, "[lines]",
2824 "Display syslog buffer", 0, KDB_REPEAT_NONE); 2824 "Display syslog buffer", 0, KDB_REPEAT_NONE);
2825#endif 2825#endif
2826 if (arch_kgdb_ops.enable_nmi) { 2826 if (arch_kgdb_ops.enable_nmi) {
2827 kdb_register_repeat("disable_nmi", kdb_disable_nmi, "", 2827 kdb_register_flags("disable_nmi", kdb_disable_nmi, "",
2828 "Disable NMI entry to KDB", 0, KDB_REPEAT_NONE); 2828 "Disable NMI entry to KDB", 0, KDB_REPEAT_NONE);
2829 } 2829 }
2830 kdb_register_repeat("defcmd", kdb_defcmd, "name \"usage\" \"help\"", 2830 kdb_register_flags("defcmd", kdb_defcmd, "name \"usage\" \"help\"",
2831 "Define a set of commands, down to endefcmd", 0, KDB_REPEAT_NONE); 2831 "Define a set of commands, down to endefcmd", 0, KDB_REPEAT_NONE);
2832 kdb_register_repeat("kill", kdb_kill, "<-signal> <pid>", 2832 kdb_register_flags("kill", kdb_kill, "<-signal> <pid>",
2833 "Send a signal to a process", 0, KDB_REPEAT_NONE); 2833 "Send a signal to a process", 0, KDB_REPEAT_NONE);
2834 kdb_register_repeat("summary", kdb_summary, "", 2834 kdb_register_flags("summary", kdb_summary, "",
2835 "Summarize the system", 4, KDB_REPEAT_NONE); 2835 "Summarize the system", 4, KDB_REPEAT_NONE);
2836 kdb_register_repeat("per_cpu", kdb_per_cpu, "<sym> [<bytes>] [<cpu>]", 2836 kdb_register_flags("per_cpu", kdb_per_cpu, "<sym> [<bytes>] [<cpu>]",
2837 "Display per_cpu variables", 3, KDB_REPEAT_NONE); 2837 "Display per_cpu variables", 3, KDB_REPEAT_NONE);
2838 kdb_register_repeat("grephelp", kdb_grep_help, "", 2838 kdb_register_flags("grephelp", kdb_grep_help, "",
2839 "Display help on | grep", 0, KDB_REPEAT_NONE); 2839 "Display help on | grep", 0, KDB_REPEAT_NONE);
2840} 2840}
2841 2841
diff --git a/kernel/trace/trace_kdb.c b/kernel/trace/trace_kdb.c
index bd90e1b06088..1e3b36c75048 100644
--- a/kernel/trace/trace_kdb.c
+++ b/kernel/trace/trace_kdb.c
@@ -127,7 +127,7 @@ static int kdb_ftdump(int argc, const char **argv)
127 127
128static __init int kdb_ftrace_register(void) 128static __init int kdb_ftrace_register(void)
129{ 129{
130 kdb_register_repeat("ftdump", kdb_ftdump, "[skip_#lines] [cpu]", 130 kdb_register_flags("ftdump", kdb_ftdump, "[skip_#lines] [cpu]",
131 "Dump ftrace log", 0, KDB_REPEAT_NONE); 131 "Dump ftrace log", 0, KDB_REPEAT_NONE);
132 return 0; 132 return 0;
133} 133}