Re: [PATCH] x86/uaccess: Avoid barrier_nospec() in copy_from_user()
From: Josh Poimboeuf <jpoimboe@kernel.org>
Date: 2024-10-12 14:09:37
From: Josh Poimboeuf <jpoimboe@kernel.org>
Date: 2024-10-12 14:09:37
On Sat, Oct 12, 2024 at 09:48:57AM +0100, Andrew Cooper wrote:
On 12/10/2024 5:09 am, Josh Poimboeuf wrote:quoted
For x86-64, the barrier_nospec() in copy_from_user() is overkill and painfully slow. Instead, use pointer masking to force the user pointer to a non-kernel value even in speculative paths. Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>You do realise mask_user_address() is unsafe under speculation on AMD systems? Had the mask_user_address() patch been put for review, this feedback would have been given then. AMD needs to arrange for bit 47 (bit 58 with LA57) to be the one saturated by shifting, not bit 63.
Ok... why? -- Josh