]> www.infradead.org Git - users/willy/xarray.git/commit
x86/kexec: Fix bug with call depth tracking
authorDavid Kaplan <david.kaplan@amd.com>
Sun, 2 Jun 2024 18:19:09 +0000 (13:19 -0500)
committerBorislav Petkov (AMD) <bp@alien8.de>
Mon, 3 Jun 2024 15:19:03 +0000 (17:19 +0200)
commit93c1800b3799f17375989b0daf76497dd3e80922
treee239ee8c06e170d7fd6d77e488d85a749af2400d
parentc3f38fa61af77b49866b006939479069cd451173
x86/kexec: Fix bug with call depth tracking

The call to cc_platform_has() triggers a fault and system crash if call depth
tracking is active because the GS segment has been reset by load_segments() and
GS_BASE is now 0 but call depth tracking uses per-CPU variables to operate.

Call cc_platform_has() earlier in the function when GS is still valid.

  [ bp: Massage. ]

Fixes: 5d8213864ade ("x86/retbleed: Add SKL return thunk")
Signed-off-by: David Kaplan <david.kaplan@amd.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Cc: <stable@kernel.org>
Link: https://lore.kernel.org/r/20240603083036.637-1-bp@kernel.org
arch/x86/kernel/machine_kexec_64.c