Skip to content

Commit 1881148

Browse files
Ahmed S. DarwishIngo Molnar
authored andcommitted
x86/cpu: Validate CPUID leaf 0x2 EDX output
CPUID leaf 0x2 emits one-byte descriptors in its four output registers EAX, EBX, ECX, and EDX. For these descriptors to be valid, the most significant bit (MSB) of each register must be clear. Leaf 0x2 parsing at intel.c only validated the MSBs of EAX, EBX, and ECX, but left EDX unchecked. Validate EDX's most-significant bit as well. Fixes: e0ba94f ("x86/tlb_info: get last level TLB entry number of CPU") Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: stable@kernel.org Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: https://lore.kernel.org/r/20250304085152.51092-3-darwi@linutronix.de
1 parent 8177c6b commit 1881148

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

arch/x86/kernel/cpu/intel.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -799,7 +799,7 @@ static void intel_detect_tlb(struct cpuinfo_x86 *c)
799799
cpuid(2, &regs[0], &regs[1], &regs[2], &regs[3]);
800800

801801
/* If bit 31 is set, this is an unknown format */
802-
for (j = 0 ; j < 3 ; j++)
802+
for (j = 0 ; j < 4 ; j++)
803803
if (regs[j] & (1 << 31))
804804
regs[j] = 0;
805805

0 commit comments

Comments
 (0)