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)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 25 Jul 2023 22:29:01 +0000 (15:29 -0700)
commit9f9116406120638b4d8db3831ffbc430dd2e1e95
tree4cdd0de09f66d3a7f24334c606eb2791288152ee
parent0b4a9fdc9317440a71d4d4c264a5650bf4a90f3c
x86/traps: Fix load_unaligned_zeropad() handling for shared TDX memory

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>
arch/x86/kernel/traps.c