[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <680c14b5af9d43d6bc70d2c1e9321e01@AcuMS.aculab.com>
Date: Sat, 23 Nov 2024 18:48:50 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Linus Torvalds' <torvalds@...ux-foundation.org>, Andrew Cooper
<andrew.cooper3@...rix.com>, "bp@...en8.de" <bp@...en8.de>, Josh Poimboeuf
<jpoimboe@...nel.org>
CC: "x86@...nel.org" <x86@...nel.org>, "linux-kernel@...r.kernel.org"
<linux-kernel@...r.kernel.org>, 'Arnd Bergmann' <arnd@...nel.org>, "'Mikel
Rychliski'" <mikel@...elr.com>, 'Thomas Gleixner' <tglx@...utronix.de>,
"'Ingo Molnar'" <mingo@...hat.com>, 'Borislav Petkov' <bp@...en8.de>, 'Dave
Hansen' <dave.hansen@...ux.intel.com>, "'H. Peter Anvin'" <hpa@...or.com>
Subject: [PATCH] x86: Allow user accesses to the base of the guard page
A user buffer can validly end with the last valid user address.
In that case access_ok(ptr, size) will check that 'ptr + size'
is a valid user address - and it needs to succeed.
access_ok() can't decrement the length because access_ok(ptr, 0)
also has to be valid.
Any actual access will fault.
Fixes: 86e6b1547b3d0 ("x86: fix user address masking non-canonical speculation issue")
Signed-off-by: David Laight <david.laight@...lab.com>
---
arch/x86/kernel/cpu/common.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 06a516f6795b..ca327cfa42ae 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -2389,12 +2389,12 @@ void __init arch_cpu_finalize_init(void)
alternative_instructions();
if (IS_ENABLED(CONFIG_X86_64)) {
- unsigned long USER_PTR_MAX = TASK_SIZE_MAX-1;
+ unsigned long USER_PTR_MAX = TASK_SIZE_MAX;
/*
* Enable this when LAM is gated on LASS support
if (cpu_feature_enabled(X86_FEATURE_LAM))
- USER_PTR_MAX = (1ul << 63) - PAGE_SIZE - 1;
+ USER_PTR_MAX = (1ul << 63) - PAGE_SIZE;
*/
runtime_const_init(ptr, USER_PTR_MAX);
--
2.17.1
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Powered by blists - more mailing lists