On Thu, Feb 01, 2024 at 10:22:18PM +0800, Huang, Kai wrote:
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();
| ^~~~~~~~~~~~~~~~~~~~
Moving save_processor_state() declaration outside all defines would do the
trick.
Something like the patch below.
But finding the right spot for the move can be tricky. I don't particular
like where I moved it.