| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- From d6b6a8fa92efd244f759ab8ded4ccaebac2b762c Mon Sep 17 00:00:00 2001
- From: Borislav Petkov <[email protected]>
- Date: Tue, 12 Dec 2017 14:39:52 +0100
- Subject: [PATCH 191/232] x86/pti: Add the pti= cmdline option and
- documentation
- MIME-Version: 1.0
- Content-Type: text/plain; charset=UTF-8
- Content-Transfer-Encoding: 8bit
- CVE-2017-5754
- Keep the "nopti" optional for traditional reasons.
- [ tglx: Don't allow force on when running on XEN PV and made 'on'
- printout conditional ]
- Requested-by: Linus Torvalds <[email protected]>
- Signed-off-by: Borislav Petkov <[email protected]>
- Signed-off-by: Thomas Gleixner <[email protected]>
- Cc: Andy Lutomirski <[email protected]>
- Cc: Andy Lutomirsky <[email protected]>
- Cc: Boris Ostrovsky <[email protected]>
- Cc: Borislav Petkov <[email protected]>
- Cc: Brian Gerst <[email protected]>
- Cc: Dave Hansen <[email protected]>
- Cc: Dave Hansen <[email protected]>
- Cc: David Laight <[email protected]>
- Cc: Denys Vlasenko <[email protected]>
- Cc: Eduardo Valentin <[email protected]>
- Cc: Greg KH <[email protected]>
- Cc: H. Peter Anvin <[email protected]>
- Cc: Josh Poimboeuf <[email protected]>
- Cc: Juergen Gross <[email protected]>
- Cc: Linus Torvalds <[email protected]>
- Cc: Peter Zijlstra <[email protected]>
- Cc: Will Deacon <[email protected]>
- Cc: [email protected]
- Cc: [email protected]
- Cc: [email protected]
- Cc: [email protected]
- Link: https://lkml.kernel.org/r/[email protected]
- Signed-off-by: Ingo Molnar <[email protected]>
- (cherry picked from commit 41f4c20b57a4890ea7f56ff8717cc83fefb8d537)
- Signed-off-by: Andy Whitcroft <[email protected]>
- Signed-off-by: Kleber Sacilotto de Souza <[email protected]>
- (cherry picked from commit 96d3670fa8f88989fb7c0be5172a1378143f3296)
- Signed-off-by: Fabian Grünbichler <[email protected]>
- ---
- Documentation/admin-guide/kernel-parameters.txt | 6 ++++++
- arch/x86/mm/pti.c | 26 ++++++++++++++++++++++++-
- 2 files changed, 31 insertions(+), 1 deletion(-)
- diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
- index e2a4608da5d2..b4d2edf316db 100644
- --- a/Documentation/admin-guide/kernel-parameters.txt
- +++ b/Documentation/admin-guide/kernel-parameters.txt
- @@ -3247,6 +3247,12 @@
- pt. [PARIDE]
- See Documentation/blockdev/paride.txt.
-
- + pti= [X86_64]
- + Control user/kernel address space isolation:
- + on - enable
- + off - disable
- + auto - default setting
- +
- pty.legacy_count=
- [KNL] Number of legacy pty's. Overwrites compiled-in
- default number.
- diff --git a/arch/x86/mm/pti.c b/arch/x86/mm/pti.c
- index 375f23a758bc..a13f6b109865 100644
- --- a/arch/x86/mm/pti.c
- +++ b/arch/x86/mm/pti.c
- @@ -54,21 +54,45 @@ static void __init pti_print_if_insecure(const char *reason)
- pr_info("%s\n", reason);
- }
-
- +static void __init pti_print_if_secure(const char *reason)
- +{
- + if (!boot_cpu_has_bug(X86_BUG_CPU_INSECURE))
- + pr_info("%s\n", reason);
- +}
- +
- void __init pti_check_boottime_disable(void)
- {
- + char arg[5];
- + int ret;
- +
- if (hypervisor_is_type(X86_HYPER_XEN_PV)) {
- pti_print_if_insecure("disabled on XEN PV.");
- return;
- }
-
- + ret = cmdline_find_option(boot_command_line, "pti", arg, sizeof(arg));
- + if (ret > 0) {
- + if (ret == 3 && !strncmp(arg, "off", 3)) {
- + pti_print_if_insecure("disabled on command line.");
- + return;
- + }
- + if (ret == 2 && !strncmp(arg, "on", 2)) {
- + pti_print_if_secure("force enabled on command line.");
- + goto enable;
- + }
- + if (ret == 4 && !strncmp(arg, "auto", 4))
- + goto autosel;
- + }
- +
- if (cmdline_find_option_bool(boot_command_line, "nopti")) {
- pti_print_if_insecure("disabled on command line.");
- return;
- }
-
- +autosel:
- if (!boot_cpu_has_bug(X86_BUG_CPU_INSECURE))
- return;
- -
- +enable:
- setup_force_cpu_cap(X86_FEATURE_PTI);
- }
-
- --
- 2.14.2
|