diff options
Diffstat (limited to 'kernel/sysctl.c')
-rw-r--r-- | kernel/sysctl.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index bcfb79e94ec7..b12583047757 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
@@ -163,6 +163,27 @@ static int proc_taint(struct ctl_table *table, int write, | |||
163 | void __user *buffer, size_t *lenp, loff_t *ppos); | 163 | void __user *buffer, size_t *lenp, loff_t *ppos); |
164 | #endif | 164 | #endif |
165 | 165 | ||
166 | #ifdef CONFIG_MAGIC_SYSRQ | ||
167 | static int __sysrq_enabled; /* Note: sysrq code ises it's own private copy */ | ||
168 | |||
169 | static int sysrq_sysctl_handler(ctl_table *table, int write, | ||
170 | void __user *buffer, size_t *lenp, | ||
171 | loff_t *ppos) | ||
172 | { | ||
173 | int error; | ||
174 | |||
175 | error = proc_dointvec(table, write, buffer, lenp, ppos); | ||
176 | if (error) | ||
177 | return error; | ||
178 | |||
179 | if (write) | ||
180 | sysrq_toggle_support(__sysrq_enabled); | ||
181 | |||
182 | return 0; | ||
183 | } | ||
184 | |||
185 | #endif | ||
186 | |||
166 | static struct ctl_table root_table[]; | 187 | static struct ctl_table root_table[]; |
167 | static struct ctl_table_root sysctl_table_root; | 188 | static struct ctl_table_root sysctl_table_root; |
168 | static struct ctl_table_header root_table_header = { | 189 | static struct ctl_table_header root_table_header = { |
@@ -567,7 +588,7 @@ static struct ctl_table kern_table[] = { | |||
567 | .data = &__sysrq_enabled, | 588 | .data = &__sysrq_enabled, |
568 | .maxlen = sizeof (int), | 589 | .maxlen = sizeof (int), |
569 | .mode = 0644, | 590 | .mode = 0644, |
570 | .proc_handler = proc_dointvec, | 591 | .proc_handler = sysrq_sysctl_handler, |
571 | }, | 592 | }, |
572 | #endif | 593 | #endif |
573 | #ifdef CONFIG_PROC_SYSCTL | 594 | #ifdef CONFIG_PROC_SYSCTL |
@@ -621,7 +642,7 @@ static struct ctl_table kern_table[] = { | |||
621 | #endif | 642 | #endif |
622 | { | 643 | { |
623 | .procname = "userprocess_debug", | 644 | .procname = "userprocess_debug", |
624 | .data = &sysctl_userprocess_debug, | 645 | .data = &show_unhandled_signals, |
625 | .maxlen = sizeof(int), | 646 | .maxlen = sizeof(int), |
626 | .mode = 0644, | 647 | .mode = 0644, |
627 | .proc_handler = proc_dointvec, | 648 | .proc_handler = proc_dointvec, |
@@ -1431,7 +1452,8 @@ static struct ctl_table fs_table[] = { | |||
1431 | }; | 1452 | }; |
1432 | 1453 | ||
1433 | static struct ctl_table debug_table[] = { | 1454 | static struct ctl_table debug_table[] = { |
1434 | #if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_SPARC) | 1455 | #if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_SPARC) || \ |
1456 | defined(CONFIG_S390) | ||
1435 | { | 1457 | { |
1436 | .procname = "exception-trace", | 1458 | .procname = "exception-trace", |
1437 | .data = &show_unhandled_signals, | 1459 | .data = &show_unhandled_signals, |