* Ben Hutchings <[email protected]> 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 <[email protected]>
> References: https://bugs.debian.org/800934
> Fixes: ce4f5f9b65ae ("x86/fpu, crypto x86/camellia_aesni_avx: Simplify...")
> Signed-off-by: Ben Hutchings <[email protected]>
> Cc: stable <[email protected]> # 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 stable" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html