summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2010-06-16 11:47:55 +1000
committerStephen Rothwell <sfr@canb.auug.org.au>2010-06-16 11:47:55 +1000
commit01ea0246f852d7b93bb60072327ca75743afa885 (patch)
treee8212f4b2bb26b8b17b440630c5d14072d5c10b0
parent4a63f861abcf9d3bb6a5e5a76aafae954df9fd26 (diff)
parent93c47fada46e034941106fb34b76a00a87108fc5 (diff)
Merge remote branch 'kgdb/kgdb-next'
-rw-r--r--drivers/char/sysrq.c2
-rw-r--r--kernel/debug/kdb/kdb_main.c9
2 files changed, 9 insertions, 2 deletions
diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
index 5d64e3acb000..44e0334a02ba 100644
--- a/drivers/char/sysrq.c
+++ b/drivers/char/sysrq.c
@@ -721,7 +721,7 @@ int sysrq_toggle_support(int enable_mask)
sysrq_unregister_handler();
}
- return 0;
+ return was_enabled;
}
static int __sysrq_swap_key_ops(int key, struct sysrq_key_op *insert_op_p,
diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
index 184cd8209c36..5f24758810aa 100644
--- a/kernel/debug/kdb/kdb_main.c
+++ b/kernel/debug/kdb/kdb_main.c
@@ -1818,13 +1818,17 @@ static int kdb_rm(int argc, const char **argv)
*/
static int kdb_sr(int argc, const char **argv)
{
+ int toggle_save;
+
if (argc != 1)
return KDB_ARGCOUNT;
- sysrq_toggle_support(1);
+ toggle_save = sysrq_toggle_support(1);
kdb_trap_printk++;
handle_sysrq(*argv[1], NULL);
kdb_trap_printk--;
+ sysrq_toggle_support(toggle_save);
+
return 0;
}
#endif /* CONFIG_MAGIC_SYSRQ */
@@ -2291,6 +2295,9 @@ static int kdb_ll(int argc, const char **argv)
while (va) {
char buf[80];
+ if (KDB_FLAG(CMD_INTERRUPT))
+ return 0;
+
sprintf(buf, "%s " kdb_machreg_fmt "\n", command, va);
diag = kdb_parse(buf);
if (diag)