On 11/23/22 6:47 AM, Kirill A. Shutemov wrote: > On Wed, Nov 23, 2022 at 02:14:58AM +0000, Dexuan Cui wrote: >>> From: Dave Hansen <dave.hansen@xxxxxxxxx> >>> Sent: Monday, November 21, 2022 12:05 PM >>> [...] >>>> #ifdef CONFIG_X86_64 >>>> +#if CONFIG_INTEL_TDX_GUEST >>>> + if (hv_isolation_type_tdx()) { >>> >>>> #ifdef CONFIG_X86_64 >>>> +#if CONFIG_INTEL_TDX_GUEST >>>> + if (hv_isolation_type_tdx()) >>> >>>> #ifdef CONFIG_X86_64 >>>> +#if CONFIG_INTEL_TDX_GUEST >>>> + if (hv_isolation_type_tdx()) >>>> + return __tdx_ms_hv_hypercall(control, input2, input1); >>> >>> See any common patterns there? >>> >>> The "no #ifdef's in C files" rule would be good to apply here. Please >>> do one #ifdef in a header. >> >> Sorry, I should use #ifdef rather than #if. I'll fix it like the below. > > No, can we hide preprocessor hell inside hv_isolation_type_tdx()? > > Like make it return false for !CONFIG_INTEL_TDX_GUEST and avoid all > #if/#ifdefs in C file. There is a weak reference to hv_isolation_type_tdx() which returns false by default. So defining the hv_isolation_type_tdx within #ifdef CONFIG_INTEL_TDX_GUEST would be enough. > > -- Sathyanarayanan Kuppuswamy Linux Kernel Developer