Re: [PATCH] crypto x86/camellia_aesni_avx: Fix CPU feature checks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



* Ben Hutchings <ben@xxxxxxxxxxxxxxx> 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 <glondu@xxxxxxxxxx>
> References: https://bugs.debian.org/800934
> Fixes: ce4f5f9b65ae ("x86/fpu, crypto x86/camellia_aesni_avx: Simplify...")
> Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx>
> Cc: stable <stable@xxxxxxxxxxxxxxx> # 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]