Re: [PATCH 3/4] x86/kexec(): Reset TDX private memory on platforms with TDX erratum

From: Huang, Kai
Date: Thu Feb 01 2024 - 09:23:14 EST




On 1/02/2024 6:03 am, Kirill A. Shutemov wrote:
On Wed, Jan 31, 2024 at 01:21:39PM -0800, Dave Hansen wrote:
#ifdef CONFIG_KEXEC_JUMP
if (image->preserve_context)
save_processor_state();
+ else
+ tdx_reset_memory();
+#else
+ tdx_reset_memory();
#endif

Wow, that's awfully hard to read. I really wish folks' gag reflex would
kick in when they see stuff like this to get them to spend an additional
15 seconds to turn this into:

if (IS_ENABLED(CONFIG_KEXEC_JUMP) && image->preserve_context)
save_processor_state();
else
tdx_reset_memory();

save_processor_state() is declared under CONFIG_PM_SLEEP, so I guess your
variant might break build in some cases without updated suspend.h.

I tried. If I turn off both SUSPEND and HIBERNATION in the Kconfig I got build error:

arch/x86/kernel/machine_kexec_64.c:325:17: error: implicit declaration of function ‘save_processor_state’ [-Werror=implicit-function-declaration]
325 | save_processor_state();
| ^~~~~~~~~~~~~~~~~~~~