KVM: set_msr_mce: Permit guests to ignore single-bit ECC errors
Certain guest operating systems (e.g., UNIXWARE) clear bit 0 of
MC1_CTL to ignore single-bit ECC data errors. Single-bit ECC data
errors are always correctable and thus are safe to ignore because they
are informational in nature rather than signaling a loss of data
integrity.
Prior to this patch, these guests would crash upon writing MC1_CTL,
with resultant error messages like the following:
error: kvm run failed Operation not permitted
EAX=
fffffffe EBX=
fffffffe ECX=
00000404 EDX=
ffffffff
ESI=
ffffffff EDI=
00000001 EBP=
0c69fd6e ESP=
fffdab20
EIP=
c01333a5 EFL=
00000246 [---Z-P-] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0108
00000000 ffffffff 00c09300 DPL=0 DS [-WA]
CS =0100
00000000 ffffffff 00c09b00 DPL=0 CS32 [-RA]
SS =0108
00000000 ffffffff 00c09300 DPL=0 DS [-WA]
DS =0108
00000000 ffffffff 00c09300 DPL=0 DS [-WA]
FS =0000
00000000 ffffffff 00c00000
GS =0000
00000000 ffffffff 00c00000
LDT=0118
c1026390 00000047 00008200 DPL=0 LDT
TR =0110
ffff5af0 00000067 00008b00 DPL=0 TSS32-busy
GDT=
ffff5020 000002cf
IDT=
ffff52f0 000007ff
CR0=
8001003b CR2=
00000000 CR3=
0100a000 CR4=
00000230
DR0=
00000000 DR1=
00000000 DR2=
00000000 DR3=
00000000
DR6=
ffff0ff0 DR7=
00000400
EFER=
0000000000000000
Code=08 89 01 89 51 04 c3 8b 4c 24 08 8b 01 8b 51 04 8b 4c 24 04 <0f>
30 c3 f7 05 a4 6d ff ff 10 00 00 00 74 03 0f 31 c3 33 c0 33 d2 c3 8d
74 26 00 0f 31 c3
Signed-off-by: Lev Kujawski <lkujaw@member.fsf.org>
Message-Id: <
20220521081511.187388-1-lkujaw@member.fsf.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>