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

Bug#800934: linux-image-4.2.0-1-amd64: Kernel 4.2.0-1-amd64 does not boot



Control: tag -1 upstream patch

On Mon, 2015-10-05 at 17:21 +0200, Stéphane Glondu wrote:
> Le 05/10/2015 16:36, Ben Hutchings a écrit :
> > [...]
> > > I think the crash is late enough that it will have been logged to
> > > /var/log/messages, so please can you provide the full BUG/oops
> > > message
> > > from there?
> > 
> > Also, the contents of /proc/cpuinfo.
> 
> Attached.

Right, this CPU is missing AES-NI so this module should refuse to
initialise.

Patch attached; please test it following the instructions at
<https://kernel-handbook.alioth.debian.org/ch-common-tasks.html#s-common-official>.

Ben.

-- 
Ben Hutchings
compatible: Gracefully accepts erroneous data from any source
From cb93e81e799733c8eb1c07f73d3b019faa85547e Mon Sep 17 00:00:00 2001
From: Ben Hutchings <ben@decadent.org.uk>
Date: Mon, 5 Oct 2015 16:40:01 +0100
Subject: [PATCH] crypto x86/camellia_aesni_avx: Fix CPU feature checks
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

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-by: Stéphane Glondu <glondu@debian.org>
References: https://bugs.debian.org/800934
Fixes: ce4f5f9b65ae ("x86/fpu, crypto x86/camellia_aesni_avx: Simplify...")
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Cc: stable <stable@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;

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: