* Ben Hutchings <b...@decadent.org.uk> wrote:

> We need to explicitly check the AVX and AES CPU features, as we can't
> infer them from the related XSAVE feature flags.  For example, the
> Core i3 2310M passes the XSAVE feature test but does not implement
> AES-NI.
> 
> Reported-and-tested-by: Stéphane Glondu <glo...@debian.org>
> References: https://bugs.debian.org/800934
> Fixes: ce4f5f9b65ae ("x86/fpu, crypto x86/camellia_aesni_avx: Simplify...")
> Signed-off-by: Ben Hutchings <b...@decadent.org.uk>
> Cc: stable <sta...@vger.kernel.org> # 4.2
> ---
>  arch/x86/crypto/camellia_aesni_avx_glue.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/arch/x86/crypto/camellia_aesni_avx_glue.c 
> b/arch/x86/crypto/camellia_aesni_avx_glue.c
> index 80a0e43..bacaa13 100644
> --- a/arch/x86/crypto/camellia_aesni_avx_glue.c
> +++ b/arch/x86/crypto/camellia_aesni_avx_glue.c
> @@ -554,6 +554,11 @@ static int __init camellia_aesni_init(void)
>  {
>       const char *feature_name;
>  
> +     if (!cpu_has_avx || !cpu_has_aes || !cpu_has_osxsave) {
> +             pr_info("AVX or AES-NI instructions are not detected.\n");
> +             return -ENODEV;
> +     }
> +
>       if (!cpu_has_xfeatures(XSTATE_SSE | XSTATE_YMM, &feature_name)) {
>               pr_info("CPU feature '%s' is not supported.\n", feature_name);
>               return -ENODEV;

Good catch!

Do we still need the cpu_has_xfeatures() check after the cpuid based check?

Thanks,

        Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-crypto" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to