x86/traps: Fix load_unaligned_zeropad() handling for shared TDX memory
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>
Mon, 24 Jul 2023 23:03:29 +0000 (02:03 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 3 Aug 2023 08:24:01 +0000 (10:24 +0200)
commit1ecdbf2467ae4bc4df00c5cfab427cb1aaa5e3e1
tree49357960fb9d263e9edd77734cbf9dee37d27a38
parentcb160f4f90d1a5f48fe21a965461d993a6b6ebdc
x86/traps: Fix load_unaligned_zeropad() handling for shared TDX memory

[ Upstream commit 9f9116406120638b4d8db3831ffbc430dd2e1e95 ]

Commit c4e34dd99f2e ("x86: simplify load_unaligned_zeropad()
implementation") changes how exceptions around load_unaligned_zeropad()
handled.  The kernel now uses the fault_address in fixup_exception() to
verify the address calculations for the load_unaligned_zeropad().

It works fine for #PF, but breaks on #VE since no fault address is
passed down to fixup_exception().

Propagating ve_info.gla down to fixup_exception() resolves the issue.

See commit 1e7769653b06 ("x86/tdx: Handle load_unaligned_zeropad()
page-cross to a shared page") for more context.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Reported-by: Michael Kelley <mikelley@microsoft.com>
Fixes: c4e34dd99f2e ("x86: simplify load_unaligned_zeropad() implementation")
Acked-by: Dave Hansen <dave.hansen@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/x86/kernel/traps.c