diff options
Diffstat (limited to 'arch/x86/kernel/cpu/bugs.c')
| -rw-r--r-- | arch/x86/kernel/cpu/bugs.c | 14 | 
1 files changed, 12 insertions, 2 deletions
diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 510d85261132..da7c361f47e0 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -433,7 +433,8 @@ static void __init mmio_select_mitigation(void)  	u64 ia32_cap;  	if (!boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA) || -	    cpu_mitigations_off()) { +	     boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN) || +	     cpu_mitigations_off()) {  		mmio_mitigation = MMIO_MITIGATION_OFF;  		return;  	} @@ -538,6 +539,8 @@ out:  		pr_info("TAA: %s\n", taa_strings[taa_mitigation]);  	if (boot_cpu_has_bug(X86_BUG_MMIO_STALE_DATA))  		pr_info("MMIO Stale Data: %s\n", mmio_strings[mmio_mitigation]); +	else if (boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN)) +		pr_info("MMIO Stale Data: Unknown: No mitigations\n");  }  static void __init md_clear_select_mitigation(void) @@ -2275,6 +2278,9 @@ static ssize_t tsx_async_abort_show_state(char *buf)  static ssize_t mmio_stale_data_show_state(char *buf)  { +	if (boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN)) +		return sysfs_emit(buf, "Unknown: No mitigations\n"); +  	if (mmio_mitigation == MMIO_MITIGATION_OFF)  		return sysfs_emit(buf, "%s\n", mmio_strings[mmio_mitigation]); @@ -2421,6 +2427,7 @@ static ssize_t cpu_show_common(struct device *dev, struct device_attribute *attr  		return srbds_show_state(buf);  	case X86_BUG_MMIO_STALE_DATA: +	case X86_BUG_MMIO_UNKNOWN:  		return mmio_stale_data_show_state(buf);  	case X86_BUG_RETBLEED: @@ -2480,7 +2487,10 @@ ssize_t cpu_show_srbds(struct device *dev, struct device_attribute *attr, char *  ssize_t cpu_show_mmio_stale_data(struct device *dev, struct device_attribute *attr, char *buf)  { -	return cpu_show_common(dev, attr, buf, X86_BUG_MMIO_STALE_DATA); +	if (boot_cpu_has_bug(X86_BUG_MMIO_UNKNOWN)) +		return cpu_show_common(dev, attr, buf, X86_BUG_MMIO_UNKNOWN); +	else +		return cpu_show_common(dev, attr, buf, X86_BUG_MMIO_STALE_DATA);  }  ssize_t cpu_show_retbleed(struct device *dev, struct device_attribute *attr, char *buf)  |