On Wed, Jun 22, 2022 at 11:16:07PM +1200, Kai Huang wrote: >-static bool intel_cc_platform_has(enum cc_attr attr) >+#ifdef CONFIG_INTEL_TDX_GUEST >+static bool intel_tdx_guest_has(enum cc_attr attr) > { > switch (attr) { > case CC_ATTR_GUEST_UNROLL_STRING_IO: >@@ -28,6 +31,33 @@ static bool intel_cc_platform_has(enum cc_attr attr) > return false; > } > } >+#endif >+ >+#ifdef CONFIG_INTEL_TDX_HOST >+static bool intel_tdx_host_has(enum cc_attr attr) >+{ >+ switch (attr) { >+ case CC_ATTR_ACPI_CPU_HOTPLUG_DISABLED: >+ case CC_ATTR_ACPI_MEMORY_HOTPLUG_DISABLED: >+ return true; >+ default: >+ return false; >+ } >+} >+#endif >+ >+static bool intel_cc_platform_has(enum cc_attr attr) >+{ >+#ifdef CONFIG_INTEL_TDX_GUEST >+ if (boot_cpu_has(X86_FEATURE_TDX_GUEST)) >+ return intel_tdx_guest_has(attr); >+#endif >+#ifdef CONFIG_INTEL_TDX_HOST >+ if (platform_tdx_enabled()) >+ return intel_tdx_host_has(attr); >+#endif >+ return false; >+} how about: static bool intel_cc_platform_has(enum cc_attr attr) { switch (attr) { /* attributes applied to TDX guest only */ case CC_ATTR_GUEST_UNROLL_STRING_IO: ... return boot_cpu_has(X86_FEATURE_TDX_GUEST); /* attributes applied to TDX host only */ case CC_ATTR_ACPI_CPU_HOTPLUG_DISABLED: case CC_ATTR_ACPI_MEMORY_HOTPLUG_DISABLED: return platform_tdx_enabled(); default: return false; } } so that we can get rid of #ifdef/endif.