sysrq: Allow magic SysRq key functions to be disabled through Kconfig
Turn the initial value of sysctl kernel.sysrq (SYSRQ_DEFAULT_ENABLE) into a Kconfig variable. Original version by Bastian Blank <waldi@debian.org>. Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
e8b5cbb041
commit
8eaede49df
@@ -11,11 +11,9 @@ regardless of whatever else it is doing, unless it is completely locked up.
|
|||||||
You need to say "yes" to 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' when
|
You need to say "yes" to 'Magic SysRq key (CONFIG_MAGIC_SYSRQ)' when
|
||||||
configuring the kernel. When running a kernel with SysRq compiled in,
|
configuring the kernel. When running a kernel with SysRq compiled in,
|
||||||
/proc/sys/kernel/sysrq controls the functions allowed to be invoked via
|
/proc/sys/kernel/sysrq controls the functions allowed to be invoked via
|
||||||
the SysRq key. By default the file contains 1 which means that every
|
the SysRq key. The default value in this file is set by the
|
||||||
possible SysRq request is allowed (in older versions SysRq was disabled
|
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE config symbol, which itself defaults
|
||||||
by default, and you were required to specifically enable it at run-time
|
to 1. Here is the list of possible values in /proc/sys/kernel/sysrq:
|
||||||
but this is not the case any more). Here is the list of possible values
|
|
||||||
in /proc/sys/kernel/sysrq:
|
|
||||||
0 - disable sysrq completely
|
0 - disable sysrq completely
|
||||||
1 - enable all functions of sysrq
|
1 - enable all functions of sysrq
|
||||||
>1 - bitmask of allowed sysrq functions (see below for detailed function
|
>1 - bitmask of allowed sysrq functions (see below for detailed function
|
||||||
@@ -32,8 +30,9 @@ in /proc/sys/kernel/sysrq:
|
|||||||
You can set the value in the file by the following command:
|
You can set the value in the file by the following command:
|
||||||
echo "number" >/proc/sys/kernel/sysrq
|
echo "number" >/proc/sys/kernel/sysrq
|
||||||
|
|
||||||
The number may be written either as decimal or as hexadecimal with the
|
The number may be written here either as decimal or as hexadecimal
|
||||||
0x prefix.
|
with the 0x prefix. CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE must always be
|
||||||
|
written in hexadecimal.
|
||||||
|
|
||||||
Note that the value of /proc/sys/kernel/sysrq influences only the invocation
|
Note that the value of /proc/sys/kernel/sysrq influences only the invocation
|
||||||
via a keyboard. Invocation of any operation via /proc/sysrq-trigger is always
|
via a keyboard. Invocation of any operation via /proc/sysrq-trigger is always
|
||||||
|
|||||||
@@ -51,7 +51,7 @@
|
|||||||
#include <asm/irq_regs.h>
|
#include <asm/irq_regs.h>
|
||||||
|
|
||||||
/* Whether we react on sysrq keys or just ignore them */
|
/* Whether we react on sysrq keys or just ignore them */
|
||||||
static int __read_mostly sysrq_enabled = SYSRQ_DEFAULT_ENABLE;
|
static int __read_mostly sysrq_enabled = CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE;
|
||||||
static bool __read_mostly sysrq_always_enabled;
|
static bool __read_mostly sysrq_always_enabled;
|
||||||
|
|
||||||
unsigned short platform_sysrq_reset_seq[] __weak = { KEY_RESERVED };
|
unsigned short platform_sysrq_reset_seq[] __weak = { KEY_RESERVED };
|
||||||
|
|||||||
@@ -17,9 +17,6 @@
|
|||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <linux/types.h>
|
#include <linux/types.h>
|
||||||
|
|
||||||
/* Enable/disable SYSRQ support by default (0==no, 1==yes). */
|
|
||||||
#define SYSRQ_DEFAULT_ENABLE 1
|
|
||||||
|
|
||||||
/* Possible values of bitmask for enabling sysrq functions */
|
/* Possible values of bitmask for enabling sysrq functions */
|
||||||
/* 0x0001 is reserved for enable everything */
|
/* 0x0001 is reserved for enable everything */
|
||||||
#define SYSRQ_ENABLE_LOG 0x0002
|
#define SYSRQ_ENABLE_LOG 0x0002
|
||||||
|
|||||||
@@ -190,7 +190,7 @@ static int proc_dostring_coredump(struct ctl_table *table, int write,
|
|||||||
|
|
||||||
#ifdef CONFIG_MAGIC_SYSRQ
|
#ifdef CONFIG_MAGIC_SYSRQ
|
||||||
/* Note: sysrq code uses it's own private copy */
|
/* Note: sysrq code uses it's own private copy */
|
||||||
static int __sysrq_enabled = SYSRQ_DEFAULT_ENABLE;
|
static int __sysrq_enabled = CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE;
|
||||||
|
|
||||||
static int sysrq_sysctl_handler(ctl_table *table, int write,
|
static int sysrq_sysctl_handler(ctl_table *table, int write,
|
||||||
void __user *buffer, size_t *lenp,
|
void __user *buffer, size_t *lenp,
|
||||||
|
|||||||
@@ -312,6 +312,15 @@ config MAGIC_SYSRQ
|
|||||||
keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
|
keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
|
||||||
unless you really know what this hack does.
|
unless you really know what this hack does.
|
||||||
|
|
||||||
|
config MAGIC_SYSRQ_DEFAULT_ENABLE
|
||||||
|
hex "Enable magic SysRq key functions by default"
|
||||||
|
depends on MAGIC_SYSRQ
|
||||||
|
default 0x1
|
||||||
|
help
|
||||||
|
Specifies which SysRq key functions are enabled by default.
|
||||||
|
This may be set to 1 or 0 to enable or disable them all, or
|
||||||
|
to a bitmask as described in Documentation/sysrq.txt.
|
||||||
|
|
||||||
config DEBUG_KERNEL
|
config DEBUG_KERNEL
|
||||||
bool "Kernel debugging"
|
bool "Kernel debugging"
|
||||||
help
|
help
|
||||||
|
|||||||
Reference in New Issue
Block a user