diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/sys.c | 22 | ||||
| -rw-r--r-- | kernel/sysctl.c | 25 |
2 files changed, 47 insertions, 0 deletions
diff --git a/kernel/sys.c b/kernel/sys.c index ebcb15611728..255475d163e0 100644 --- a/kernel/sys.c +++ b/kernel/sys.c | |||
| @@ -1542,6 +1542,28 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3, | |||
| 1542 | current->timer_slack_ns = arg2; | 1542 | current->timer_slack_ns = arg2; |
| 1543 | error = 0; | 1543 | error = 0; |
| 1544 | break; | 1544 | break; |
| 1545 | case PR_MCE_KILL: | ||
| 1546 | if (arg4 | arg5) | ||
| 1547 | return -EINVAL; | ||
| 1548 | switch (arg2) { | ||
| 1549 | case 0: | ||
| 1550 | if (arg3 != 0) | ||
| 1551 | return -EINVAL; | ||
| 1552 | current->flags &= ~PF_MCE_PROCESS; | ||
| 1553 | break; | ||
| 1554 | case 1: | ||
| 1555 | current->flags |= PF_MCE_PROCESS; | ||
| 1556 | if (arg3 != 0) | ||
| 1557 | current->flags |= PF_MCE_EARLY; | ||
| 1558 | else | ||
| 1559 | current->flags &= ~PF_MCE_EARLY; | ||
| 1560 | break; | ||
| 1561 | default: | ||
| 1562 | return -EINVAL; | ||
| 1563 | } | ||
| 1564 | error = 0; | ||
| 1565 | break; | ||
| 1566 | |||
| 1545 | default: | 1567 | default: |
| 1546 | error = -EINVAL; | 1568 | error = -EINVAL; |
| 1547 | break; | 1569 | break; |
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index a02697b7cb97..0d949c517412 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
| @@ -1398,6 +1398,31 @@ static struct ctl_table vm_table[] = { | |||
| 1398 | .mode = 0644, | 1398 | .mode = 0644, |
| 1399 | .proc_handler = &scan_unevictable_handler, | 1399 | .proc_handler = &scan_unevictable_handler, |
| 1400 | }, | 1400 | }, |
| 1401 | #ifdef CONFIG_MEMORY_FAILURE | ||
| 1402 | { | ||
| 1403 | .ctl_name = CTL_UNNUMBERED, | ||
| 1404 | .procname = "memory_failure_early_kill", | ||
| 1405 | .data = &sysctl_memory_failure_early_kill, | ||
| 1406 | .maxlen = sizeof(sysctl_memory_failure_early_kill), | ||
| 1407 | .mode = 0644, | ||
| 1408 | .proc_handler = &proc_dointvec_minmax, | ||
| 1409 | .strategy = &sysctl_intvec, | ||
| 1410 | .extra1 = &zero, | ||
| 1411 | .extra2 = &one, | ||
| 1412 | }, | ||
| 1413 | { | ||
| 1414 | .ctl_name = CTL_UNNUMBERED, | ||
| 1415 | .procname = "memory_failure_recovery", | ||
| 1416 | .data = &sysctl_memory_failure_recovery, | ||
| 1417 | .maxlen = sizeof(sysctl_memory_failure_recovery), | ||
| 1418 | .mode = 0644, | ||
| 1419 | .proc_handler = &proc_dointvec_minmax, | ||
| 1420 | .strategy = &sysctl_intvec, | ||
| 1421 | .extra1 = &zero, | ||
| 1422 | .extra2 = &one, | ||
| 1423 | }, | ||
| 1424 | #endif | ||
| 1425 | |||
| 1401 | /* | 1426 | /* |
| 1402 | * NOTE: do not add new entries to this table unless you have read | 1427 | * NOTE: do not add new entries to this table unless you have read |
| 1403 | * Documentation/sysctl/ctl_unnumbered.txt | 1428 | * Documentation/sysctl/ctl_unnumbered.txt |
