diff options
Diffstat (limited to 'arch/x86/kernel/cpu/amd.c')
| -rw-r--r-- | arch/x86/kernel/cpu/amd.c | 11 | 
1 files changed, 11 insertions, 0 deletions
| diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 9862e2cd6d93..d58184b7cd44 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c @@ -763,6 +763,16 @@ static void init_amd_bd(struct cpuinfo_x86 *c)  	}  } +static void init_amd_zn(struct cpuinfo_x86 *c) +{ +	/* +	 * Fix erratum 1076: CPB feature bit not being set in CPUID. It affects +	 * all up to and including B1. +	 */ +	if (c->x86_model <= 1 && c->x86_mask <= 1) +		set_cpu_cap(c, X86_FEATURE_CPB); +} +  static void init_amd(struct cpuinfo_x86 *c)  {  	early_init_amd(c); @@ -791,6 +801,7 @@ static void init_amd(struct cpuinfo_x86 *c)  	case 0x10: init_amd_gh(c); break;  	case 0x12: init_amd_ln(c); break;  	case 0x15: init_amd_bd(c); break; +	case 0x17: init_amd_zn(c); break;  	}  	/* Enable workaround for FXSAVE leak */ |