]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
x86/bugs: Fix use of possibly uninit value in amd_check_tsa_microcode()
authorMichael Zhivich <mzhivich@akamai.com>
Wed, 23 Jul 2025 13:40:19 +0000 (09:40 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 28 Aug 2025 14:22:30 +0000 (16:22 +0200)
For kernels compiled with CONFIG_INIT_STACK_NONE=y, the value of __reserved
field in zen_patch_rev union on the stack may be garbage.  If so, it will
prevent correct microcode check when consulting p.ucode_rev, resulting in
incorrect mitigation selection.

This is a stable-only fix.

Cc: <stable@vger.kernel.org>
Signed-off-by: Michael Zhivich <mzhivich@akamai.com>
Fixes: 78192f511f40 ("x86/bugs: Add a Transient Scheduler Attacks mitigation")
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kernel/cpu/amd.c

index e67d7603449b71797b16672cee50614b80698fba..bf07b2c5418a002fac999f679946c5fb0edb78b7 100644 (file)
@@ -599,6 +599,8 @@ static bool amd_check_tsa_microcode(void)
        p.model         = c->x86_model;
        p.ext_model     = c->x86_model >> 4;
        p.stepping      = c->x86_stepping;
+       /* reserved bits are expected to be 0 in test below */
+       p.__reserved    = 0;
 
        if (c->x86 == 0x19) {
                switch (p.ucode_rev >> 8) {