Prechádzať zdrojové kódy

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>
Andy Whitcroft 14 rokov pred
rodič
commit
8c6a98b22b
3 zmenil súbory, kde vykonal 6 pridanie a 2 odobranie
  1. 1 1
      drivers/char/sysrq.c
  2. 3 0
      include/linux/sysrq.h
  3. 2 1
      kernel/sysctl.c

+ 1 - 1
drivers/char/sysrq.c

@@ -46,7 +46,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 = 1;
+static int __read_mostly sysrq_enabled = SYSRQ_DEFAULT_ENABLE;
 static bool __read_mostly sysrq_always_enabled;
 static bool __read_mostly sysrq_always_enabled;
 
 
 static bool sysrq_on(void)
 static bool sysrq_on(void)

+ 3 - 0
include/linux/sysrq.h

@@ -17,6 +17,9 @@
 #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

+ 2 - 1
kernel/sysctl.c

@@ -169,7 +169,8 @@ static int proc_taint(struct ctl_table *table, int write,
 #endif
 #endif
 
 
 #ifdef CONFIG_MAGIC_SYSRQ
 #ifdef CONFIG_MAGIC_SYSRQ
-static int __sysrq_enabled; /* Note: sysrq code ises it's own private copy */
+/* Note: sysrq code uses it's own private copy */
+static int __sysrq_enabled = 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,