Re: [PATCH v3 0/7] arm64: add system vulnerability sysfs entries

From: Stefan Wahren
Date: Sat Jan 19 2019 - 06:53:02 EST



> Jeremy Linton <jeremy.linton@xxxxxxx> hat am 18. Januar 2019 um 23:22 geschrieben:
>
>
> On 01/18/2019 12:05 PM, Stefan Wahren wrote:
> > Hi,
> >
> > ...
> >
> > a snippet or a new version would be nice
>
> Sure, I've got another version, to be posted soon (probably Tue of next
> week).
>
> In the meantime, Marc's tree should work with the following fix:
>
> diff --git a/arch/arm64/kernel/cpu_errata.c b/arch/arm64/kernel/cpu_errata.c
> index b44f87e7360d..7cfd34b2c0e5 100644
> --- a/arch/arm64/kernel/cpu_errata.c
> +++ b/arch/arm64/kernel/cpu_errata.c
> @@ -286,11 +286,15 @@ static int detect_harden_bp_fw(void)
> }
> #endif /* CONFIG_HARDEN_BRANCH_PREDICTOR */
>
> +#if defined(CONFIG_ARM64_SSBD) || \
> + defined(CONFIG_GENERIC_CPU_VULNERABILITIES)
> +static bool __ssb_safe = true;
> +#endif
> +
> #ifdef CONFIG_ARM64_SSBD
> DEFINE_PER_CPU_READ_MOSTLY(u64, arm64_ssbd_callback_required);
>
> int ssbd_state __read_mostly = ARM64_SSBD_KERNEL;
> -static bool __ssb_safe = true;
>
> static const struct ssbd_options {
> const char *str;
> @@ -569,6 +573,8 @@ check_branch_predictor(const struct
> arm64_cpu_capabilities *entry, int scope)
>
> WARN_ON(scope != SCOPE_LOCAL_CPU || preemptible());
>
> + arm64_requested_vuln_attrs |= VULN_SPECTREV2;
> +
> /* If the CPU has CSV2 set, we're safe */
> if
> (cpuid_feature_extract_unsigned_field(read_cpuid(ID_AA64PFR0_EL1),
> ID_AA64PFR0_CSV2_SHIFT))
> @@ -578,17 +584,17 @@ check_branch_predictor(const struct
> arm64_cpu_capabilities *entry, int scope)
> if (is_midr_in_range_list(read_cpuid_id(), spectre_v2_safe_list))
> return false;
>
> + __spectrev2_safe = false;
> +
> /* Fallback to firmware detection */
> need_wa = detect_harden_bp_fw();
> if (!need_wa)
> return false;
>
> - __spectrev2_safe = false;
> -
> if (need_wa < 0)
> pr_warn_once("ARM_SMCCC_ARCH_WORKAROUND_1 missing from
> firmware\n");
>
> - arm64_requested_vuln_attrs |= VULN_SPECTREV2;
> +
>
> return (need_wa > 0);
> }
>
>

fine with these changes i'm getting the following:

meltdown:Not affected
spec_store_bypass:Not affected
spectre_v1:Mitigation: __user pointer sanitization
spectre_v2:Not affected

Thanks
Stefan