summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2010-06-01 13:15:58 +1000
committerStephen Rothwell <sfr@canb.auug.org.au>2010-06-01 13:15:58 +1000
commit9b9d9fbc619f522e71e40eca660e0626ae842204 (patch)
treeed3d111725bc177df8027b4595ac81493efb7e54
parent38cbc6bb5cce08deae9bfb06cfbc7c76759625fa (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 5d15630a5830..d5a2e2f9287d 100644
--- a/drivers/char/sysrq.c
+++ b/drivers/char/sysrq.c
@@ -717,7 +717,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 b724c791b6d4..75ae5e1ccd9d 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 */
@@ -2297,6 +2301,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)