@@ -1936,7 +1936,7 @@ static void apply_quirks_amd(struct cpuinfo_x86 *c)
1936
1936
* Various K7s with broken bank 0 around. Always disable
1937
1937
* by default.
1938
1938
*/
1939
- if (c -> x86 == 6 && this_cpu_read (mce_num_banks ) > 0 )
1939
+ if (c -> x86 == 6 && this_cpu_read (mce_num_banks ))
1940
1940
mce_banks [0 ].ctl = 0 ;
1941
1941
1942
1942
/*
@@ -1954,6 +1954,10 @@ static void apply_quirks_intel(struct cpuinfo_x86 *c)
1954
1954
{
1955
1955
struct mce_bank * mce_banks = this_cpu_ptr (mce_banks_array );
1956
1956
1957
+ /* Older CPUs (prior to family 6) don't need quirks. */
1958
+ if (c -> x86_vfm < INTEL_PENTIUM_PRO )
1959
+ return ;
1960
+
1957
1961
/*
1958
1962
* SDM documents that on family 6 bank 0 should not be written
1959
1963
* because it aliases to another special BIOS controlled
@@ -1962,22 +1966,21 @@ static void apply_quirks_intel(struct cpuinfo_x86 *c)
1962
1966
* Don't ignore bank 0 completely because there could be a
1963
1967
* valid event later, merely don't write CTL0.
1964
1968
*/
1965
- if (c -> x86 == 6 && c -> x86_model < 0x1A && this_cpu_read (mce_num_banks ) > 0 )
1969
+ if (c -> x86_vfm < INTEL_NEHALEM_EP && this_cpu_read (mce_num_banks ))
1966
1970
mce_banks [0 ].init = false;
1967
1971
1968
1972
/*
1969
1973
* All newer Intel systems support MCE broadcasting. Enable
1970
1974
* synchronization with a one second timeout.
1971
1975
*/
1972
- if ((c -> x86 > 6 || (c -> x86 == 6 && c -> x86_model >= 0xe )) &&
1973
- mca_cfg .monarch_timeout < 0 )
1976
+ if (c -> x86_vfm >= INTEL_CORE_YONAH && mca_cfg .monarch_timeout < 0 )
1974
1977
mca_cfg .monarch_timeout = USEC_PER_SEC ;
1975
1978
1976
1979
/*
1977
1980
* There are also broken BIOSes on some Pentium M and
1978
1981
* earlier systems:
1979
1982
*/
1980
- if (c -> x86 == 6 && c -> x86_model <= 13 && mca_cfg .bootlog < 0 )
1983
+ if (c -> x86_vfm < INTEL_CORE_YONAH && mca_cfg .bootlog < 0 )
1981
1984
mca_cfg .bootlog = 0 ;
1982
1985
1983
1986
if (c -> x86_vfm == INTEL_SANDYBRIDGE_X )
0 commit comments