aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/sysrq.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/sysrq.c')
-rw-r--r--drivers/char/sysrq.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c
index 33a9351c896d..b0a6a3e51924 100644
--- a/drivers/char/sysrq.c
+++ b/drivers/char/sysrq.c
@@ -35,7 +35,6 @@
35#include <linux/vt_kern.h> 35#include <linux/vt_kern.h>
36#include <linux/workqueue.h> 36#include <linux/workqueue.h>
37#include <linux/kexec.h> 37#include <linux/kexec.h>
38#include <linux/irq.h>
39#include <linux/hrtimer.h> 38#include <linux/hrtimer.h>
40#include <linux/oom.h> 39#include <linux/oom.h>
41 40
@@ -283,7 +282,7 @@ static void sysrq_ftrace_dump(int key, struct tty_struct *tty)
283} 282}
284static struct sysrq_key_op sysrq_ftrace_dump_op = { 283static struct sysrq_key_op sysrq_ftrace_dump_op = {
285 .handler = sysrq_ftrace_dump, 284 .handler = sysrq_ftrace_dump,
286 .help_msg = "dumpZ-ftrace-buffer", 285 .help_msg = "dump-ftrace-buffer(Z)",
287 .action_msg = "Dump ftrace buffer", 286 .action_msg = "Dump ftrace buffer",
288 .enable_mask = SYSRQ_ENABLE_DUMP, 287 .enable_mask = SYSRQ_ENABLE_DUMP,
289}; 288};
@@ -346,6 +345,19 @@ static struct sysrq_key_op sysrq_moom_op = {
346 .enable_mask = SYSRQ_ENABLE_SIGNAL, 345 .enable_mask = SYSRQ_ENABLE_SIGNAL,
347}; 346};
348 347
348#ifdef CONFIG_BLOCK
349static void sysrq_handle_thaw(int key, struct tty_struct *tty)
350{
351 emergency_thaw_all();
352}
353static struct sysrq_key_op sysrq_thaw_op = {
354 .handler = sysrq_handle_thaw,
355 .help_msg = "thaw-filesystems(J)",
356 .action_msg = "Emergency Thaw of all frozen filesystems",
357 .enable_mask = SYSRQ_ENABLE_SIGNAL,
358};
359#endif
360
349static void sysrq_handle_kill(int key, struct tty_struct *tty) 361static void sysrq_handle_kill(int key, struct tty_struct *tty)
350{ 362{
351 send_sig_all(SIGKILL); 363 send_sig_all(SIGKILL);
@@ -396,9 +408,13 @@ static struct sysrq_key_op *sysrq_key_table[36] = {
396 &sysrq_moom_op, /* f */ 408 &sysrq_moom_op, /* f */
397 /* g: May be registered by ppc for kgdb */ 409 /* g: May be registered by ppc for kgdb */
398 NULL, /* g */ 410 NULL, /* g */
399 NULL, /* h */ 411 NULL, /* h - reserved for help */
400 &sysrq_kill_op, /* i */ 412 &sysrq_kill_op, /* i */
413#ifdef CONFIG_BLOCK
414 &sysrq_thaw_op, /* j */
415#else
401 NULL, /* j */ 416 NULL, /* j */
417#endif
402 &sysrq_SAK_op, /* k */ 418 &sysrq_SAK_op, /* k */
403#ifdef CONFIG_SMP 419#ifdef CONFIG_SMP
404 &sysrq_showallcpus_op, /* l */ 420 &sysrq_showallcpus_op, /* l */