Re: [PATCH] x86/microcode: Fix crashes on early 486 CPUs due to usage of 'cpuid'.

From: Kevin Koster
Date: Sun Apr 06 2025 - 01:40:23 EST


On Sat, 5 Apr 2025 11:32:26 +0200
Borislav Petkov <bp@xxxxxxxxx> wrote:
> On Sat, Apr 05, 2025 at 01:03:06PM +1100, Kevin Koster wrote:
> > On Sat, 19 Oct 2024 08:29:04 +0200
> > Oerg866 <oerg866@xxxxxxxxxxxxxx> wrote:
> >
> > > Starting with v6.7-rc1, the kernel was no longer able to boot on
> > > early i486-class CPUs.
> >
> > Thanks for this patch! It solves my problem with kernel 6.12.11
> > rebooting at start-up on 486 CPUs, which had me puzzled. (tested on
> > AM486DX2-66 and CX486DX4-100)
> >
> > Is there a reason why the patch wasn't accepted?
>
> Yes, too many patches, too little time. :-(
>
> Anyway, does the one below - only build-tested - work for both y'all
> too?

On my AM486DX2-66 it gets past the immediate reboot problem but gets
an Oops and kernel panic here:

[snip]
smpboot: SMP disabled
Performance Events: no PMU driver, software events only.
signal: max sigframe size: 928
Oops: invalid opcode: 0000 [#1] SMP
CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.14.0 #1
EIP: 0xc0b5e1d7
Code: 7d dc 00 74 0b b9 07 00 00 00 89 df b0 01 f3 a5 83 c4 1c 5b 5e 5f 5d c3 55 b8 01 00 00 00 89 e5 57 56 31 f6 53 89 f1 83 ec 30 <0f> a2 b9 04 00 00 00 89 45 c4 8d 7d c8 89 f0 f3 ab e8 a0 fc ff ff
EAX: 00000001 EBX: c0be6b00 ECX: 00000000 EDX: 00000246
ESI: 00000000 EDI: 00000000 EBP: c1309f08 ESP: c1309ecc
DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 EFLAGS: 00010286
CR0: 80050033 CR2: ffd38000 CR3: 00c16000 CR4: 00000000
Call Trace:
? 0xc01231af
? 0xc01231c8
? 0xc0123222
? 0xc0123245
? 0xc01215ef
? 0xc01217f7
? 0xc0b5e1d7
? 0xc0848e09
? 0xc012186f
? 0xc0b5e1d7
? 0xc0848e41
? 0xc010105d
? 0xc01500d8
? 0xc0848e09
? 0xc0b5e1d7
? 0xc01500d8
? 0xc0848e09
? 0xc0b5e1d7
? 0xc085148a
? 0xc0524da8
? 0xc0b5e1c5
0xc0102100
? 0xc08514d5
? 0xc085148a
? 0xc0171bde
? 0xc0175987
? 0xc016d672
0xc0b4c9e2
? 0xc084c9b8
0xc084c9ca
0xc0127d3a
? 0xc084c9b8
0xc01027a2
0xc0100e3d
Modules linked in:
---[ end trace 0000000000000000 ]---
EIP: 0xc0b5e1d7
Code: 7d dc 00 74 0b b9 07 00 00 00 89 df b0 01 f3 a5 83 c4 1c 5b 5e 5f 5d c3 55 b8 01 00 00 00 89 e5 57 56 31 f6 53 89 f1 83 ec 30 <0f> a2 b9 04 00 00 00 89 45 c4 8d 7d c8 89 f0 f3 ab e8 a0 fc ff ff
EAX: 00000001 EBX: c0be6b00 ECX: 00000000 EDX: 00000246
ESI: 00000000 EDI: 00000000 EBP: c1309f08 ESP: c1309ecc
DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 EFLAGS: 00010286
CR0: 80050033 CR2: ffd38000 CR3: 00c16000 CR4: 00000000
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
Rebooting in 60 seconds..