x86/cpu: Clear TME feature flag if TME is not enabled by BIOS
authorBingsong Si <sibs@chinatelecom.cn>
Mon, 11 Mar 2024 07:19:37 +0000 (15:19 +0800)
committerIngo Molnar <mingo@kernel.org>
Tue, 26 Mar 2024 08:49:32 +0000 (09:49 +0100)
When TME is disabled by BIOS, the dmesg output is:

  x86/tme: not enabled by BIOS

... and TME functionality is not enabled by the kernel, but the TME feature
is still shown in /proc/cpuinfo.

Clear it.

[ mingo: Clarified changelog ]

Signed-off-by: Bingsong Si <sibs@chinatelecom.cn>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: "Huang, Kai" <kai.huang@intel.com>
Link: https://lore.kernel.org/r/20240311071938.13247-1-sibs@chinatelecom.cn
arch/x86/kernel/cpu/intel.c

index be30d7fa2e66bc0cf0e76d21c2767c127ce8ed82..3c3e7e5695ba419434e5b64668b83deae507f8e3 100644 (file)
@@ -228,6 +228,7 @@ static void detect_tme_early(struct cpuinfo_x86 *c)
        if (!TME_ACTIVATE_LOCKED(tme_activate) || !TME_ACTIVATE_ENABLED(tme_activate)) {
                pr_info_once("x86/tme: not enabled by BIOS\n");
                mktme_status = MKTME_DISABLED;
+               clear_cpu_cap(c, X86_FEATURE_TME);
                return;
        }