x86/tsx: Use MSR_TSX_CTRL to clear CPUID bits
authorPawan Gupta <pawan.kumar.gupta@linux.intel.com>
Thu, 10 Mar 2022 22:00:59 +0000 (14:00 -0800)
committerBorislav Petkov <bp@suse.de>
Mon, 11 Apr 2022 07:54:34 +0000 (09:54 +0200)
commit258f3b8c3210b03386e4ad92b4bd8652b5c1beb3
tree0d8a799381fb64fded33a524d4fa7cc077f57990
parentce522ba9ef7e2d9fb22a39eb3371c0c64e2a433e
x86/tsx: Use MSR_TSX_CTRL to clear CPUID bits

tsx_clear_cpuid() uses MSR_TSX_FORCE_ABORT to clear CPUID.RTM and
CPUID.HLE. Not all CPUs support MSR_TSX_FORCE_ABORT, alternatively use
MSR_IA32_TSX_CTRL when supported.

  [ bp: Document how and why TSX gets disabled. ]

Fixes: 293649307ef9 ("x86/tsx: Clear CPUID bits when TSX always force aborts")
Reported-by: kernel test robot <lkp@intel.com>
Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Tested-by: Neelima Krishnan <neelima.krishnan@intel.com>
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/5b323e77e251a9c8bcdda498c5cc0095be1e1d3c.1646943780.git.pawan.kumar.gupta@linux.intel.com
arch/x86/kernel/cpu/intel.c
arch/x86/kernel/cpu/tsx.c