diff options
author | Andy Whitcroft <apw@canonical.com> | 2011-01-24 12:31:38 -0500 |
---|---|---|
committer | Dmitry Torokhov <dmitry.torokhov@gmail.com> | 2011-01-24 12:33:36 -0500 |
commit | 8c6a98b22b750c9eb52653ba643faa17db8d3881 (patch) | |
tree | 682d083e544bf4b420b6972941c9f3e7493e77ef | |
parent | cb1b145929b5b7e1bdc5f76dd2905df9f89c038e (diff) |
Input: sysrq - ensure sysrq_enabled and __sysrq_enabled are consistent
Currently sysrq_enabled and __sysrq_enabled are initialised separately
and inconsistently, leading to sysrq being actually enabled by reported
as not enabled in sysfs. The first change to the sysfs configurable
synchronises these two:
static int __read_mostly sysrq_enabled = 1;
static int __sysrq_enabled;
Add a common define to carry the default for these preventing them becoming
out of sync again. Default this to 1 to mirror previous behaviour.
Signed-off-by: Andy Whitcroft <apw@canonical.com>
Cc: stable@kernel.org
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
-rw-r--r-- | drivers/char/sysrq.c | 2 | ||||
-rw-r--r-- | include/linux/sysrq.h | 3 | ||||
-rw-r--r-- | kernel/sysctl.c | 3 |
3 files changed, 6 insertions, 2 deletions
diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c index c556ed9db13d..8e0dd254eb11 100644 --- a/drivers/char/sysrq.c +++ b/drivers/char/sysrq.c | |||
@@ -46,7 +46,7 @@ | |||
46 | #include <asm/irq_regs.h> | 46 | #include <asm/irq_regs.h> |
47 | 47 | ||
48 | /* Whether we react on sysrq keys or just ignore them */ | 48 | /* Whether we react on sysrq keys or just ignore them */ |
49 | static int __read_mostly sysrq_enabled = 1; | 49 | static int __read_mostly sysrq_enabled = SYSRQ_DEFAULT_ENABLE; |
50 | static bool __read_mostly sysrq_always_enabled; | 50 | static bool __read_mostly sysrq_always_enabled; |
51 | 51 | ||
52 | static bool sysrq_on(void) | 52 | static bool sysrq_on(void) |
diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h index 387fa7d05c98..7faf933cced7 100644 --- a/include/linux/sysrq.h +++ b/include/linux/sysrq.h | |||
@@ -17,6 +17,9 @@ | |||
17 | #include <linux/errno.h> | 17 | #include <linux/errno.h> |
18 | #include <linux/types.h> | 18 | #include <linux/types.h> |
19 | 19 | ||
20 | /* Enable/disable SYSRQ support by default (0==no, 1==yes). */ | ||
21 | #define SYSRQ_DEFAULT_ENABLE 1 | ||
22 | |||
20 | /* Possible values of bitmask for enabling sysrq functions */ | 23 | /* Possible values of bitmask for enabling sysrq functions */ |
21 | /* 0x0001 is reserved for enable everything */ | 24 | /* 0x0001 is reserved for enable everything */ |
22 | #define SYSRQ_ENABLE_LOG 0x0002 | 25 | #define SYSRQ_ENABLE_LOG 0x0002 |
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index c33a1edb799f..3afce4dc9ba5 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
@@ -169,7 +169,8 @@ static int proc_taint(struct ctl_table *table, int write, | |||
169 | #endif | 169 | #endif |
170 | 170 | ||
171 | #ifdef CONFIG_MAGIC_SYSRQ | 171 | #ifdef CONFIG_MAGIC_SYSRQ |
172 | static int __sysrq_enabled; /* Note: sysrq code ises it's own private copy */ | 172 | /* Note: sysrq code uses it's own private copy */ |
173 | static int __sysrq_enabled = SYSRQ_DEFAULT_ENABLE; | ||
173 | 174 | ||
174 | static int sysrq_sysctl_handler(ctl_table *table, int write, | 175 | static int sysrq_sysctl_handler(ctl_table *table, int write, |
175 | void __user *buffer, size_t *lenp, | 176 | void __user *buffer, size_t *lenp, |