[tip: x86/cpu] x86/cpu: Clear TME feature flag if TME is not enabled by BIOS

From: tip-bot2 for Bingsong Si
Date: Tue Mar 26 2024 - 04:56:13 EST


The following commit has been merged into the x86/cpu branch of tip:

Commit-ID: cd2236c2f49eb46443fd7573d0ddad5373577b11
Gitweb: https://git.kernel.org/tip/cd2236c2f49eb46443fd7573d0ddad5373577b11
Author: Bingsong Si <sibs@xxxxxxxxxxxxxxx>
AuthorDate: Mon, 11 Mar 2024 15:19:37 +08:00
Committer: Ingo Molnar <mingo@xxxxxxxxxx>
CommitterDate: Tue, 26 Mar 2024 09:49:32 +01:00

x86/cpu: Clear TME feature flag if TME is not enabled by BIOS

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@xxxxxxxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: "Huang, Kai" <kai.huang@xxxxxxxxx>
Link: https://lore.kernel.org/r/20240311071938.13247-1-sibs@xxxxxxxxxxxxxxx
---
arch/x86/kernel/cpu/intel.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c
index be30d7f..3c3e7e5 100644
--- a/arch/x86/kernel/cpu/intel.c
+++ b/arch/x86/kernel/cpu/intel.c
@@ -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;
}