2020-01-15 08:20:48

by Tony W Wang-oc

[permalink] [raw]
Subject: [PATCH] x86/cpu: clear X86_BUG_SPECTRE_V2 on Zhaoxin family 7 CPUs

These CPUs are not affected by spectre_v2, so clear spectre_v2 bug flag
in their specific initialization code.

Signed-off-by: Tony W Wang-oc <[email protected]>
---
arch/x86/kernel/cpu/centaur.c | 5 +++++
arch/x86/kernel/cpu/zhaoxin.c | 5 +++++
2 files changed, 10 insertions(+)

diff --git a/arch/x86/kernel/cpu/centaur.c b/arch/x86/kernel/cpu/centaur.c
index b98529e..3567560 100644
--- a/arch/x86/kernel/cpu/centaur.c
+++ b/arch/x86/kernel/cpu/centaur.c
@@ -250,6 +250,11 @@ static void init_centaur(struct cpuinfo_x86 *c)

if (cpu_has(c, X86_FEATURE_VMX))
centaur_detect_vmx_virtcap(c);
+
+ if (c->x86 == 7) {
+ setup_clear_cpu_cap(X86_BUG_SPECTRE_V2);
+ clear_bit(X86_BUG_SPECTRE_V2, (unsigned long *)cpu_caps_set);
+ }
}

#ifdef CONFIG_X86_32
diff --git a/arch/x86/kernel/cpu/zhaoxin.c b/arch/x86/kernel/cpu/zhaoxin.c
index 452fd0a..ea7c52f 100644
--- a/arch/x86/kernel/cpu/zhaoxin.c
+++ b/arch/x86/kernel/cpu/zhaoxin.c
@@ -141,6 +141,11 @@ static void init_zhaoxin(struct cpuinfo_x86 *c)

if (cpu_has(c, X86_FEATURE_VMX))
zhaoxin_detect_vmx_virtcap(c);
+
+ if (c->x86 == 7) {
+ setup_clear_cpu_cap(X86_BUG_SPECTRE_V2);
+ clear_bit(X86_BUG_SPECTRE_V2, (unsigned long *)cpu_caps_set);
+ }
}

#ifdef CONFIG_X86_32
--
2.7.4


2020-01-15 22:26:25

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH] x86/cpu: clear X86_BUG_SPECTRE_V2 on Zhaoxin family 7 CPUs

Tony W Wang-oc <[email protected]> writes:

> These CPUs are not affected by spectre_v2, so clear spectre_v2 bug flag
> in their specific initialization code.
>
> if (cpu_has(c, X86_FEATURE_VMX))
> centaur_detect_vmx_virtcap(c);
> +
> + if (c->x86 == 7) {
> + setup_clear_cpu_cap(X86_BUG_SPECTRE_V2);
> + clear_bit(X86_BUG_SPECTRE_V2, (unsigned long *)cpu_caps_set);

No. Please use cpu_vuln_whitelist. It exists for exactly this
purpose. You just need to extend it with a NO_SPECTRE_V2 bit.

Thanks,

tglx


2020-01-16 05:13:27

by Tony W Wang-oc

[permalink] [raw]
Subject: Re: [PATCH] x86/cpu: clear X86_BUG_SPECTRE_V2 on Zhaoxin family 7 CPUs

On 16/01/2020 06:19, Thomas Gleixner wrote:
> Tony W Wang-oc <[email protected]> writes:
>
>> These CPUs are not affected by spectre_v2, so clear spectre_v2 bug flag
>> in their specific initialization code.
>>
>> if (cpu_has(c, X86_FEATURE_VMX))
>> centaur_detect_vmx_virtcap(c);
>> +
>> + if (c->x86 == 7) {
>> + setup_clear_cpu_cap(X86_BUG_SPECTRE_V2);
>> + clear_bit(X86_BUG_SPECTRE_V2, (unsigned long *)cpu_caps_set);
>
> No. Please use cpu_vuln_whitelist. It exists for exactly this
> purpose. You just need to extend it with a NO_SPECTRE_V2 bit.

Got, done.

Sincerely
TonyWWang-oc