aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Haxby <john.haxby@oracle.com>2013-08-14 16:23:18 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-09-14 07:06:46 -0700
commit34bf8c60e35037c21db3a52a2da7ea557dfd9ea6 (patch)
treef8d9c7386cf1e3dfb2e771392b6fafd0f7fdef96
parent682903751a46cb1704f3f29d7f0c7c408d5b8da5 (diff)
crypto: xor - Check for osxsave as well as avx in crypto/xor
commit edb6f29464afc65fc73767540b854abf63ae7144 upstream. This affects xen pv guests with sufficiently old versions of xen and sufficiently new hardware. On such a system, a guest with a btrfs root won't even boot. Signed-off-by: John Haxby <john.haxby@oracle.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Reported-by: Michael Marineau <michael.marineau@coreos.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--arch/x86/include/asm/xor_avx.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/include/asm/xor_avx.h b/arch/x86/include/asm/xor_avx.h
index 7ea79c5fa1f..492b29802f5 100644
--- a/arch/x86/include/asm/xor_avx.h
+++ b/arch/x86/include/asm/xor_avx.h
@@ -167,12 +167,12 @@ static struct xor_block_template xor_block_avx = {
#define AVX_XOR_SPEED \
do { \
- if (cpu_has_avx) \
+ if (cpu_has_avx && cpu_has_osxsave) \
xor_speed(&xor_block_avx); \
} while (0)
#define AVX_SELECT(FASTEST) \
- (cpu_has_avx ? &xor_block_avx : FASTEST)
+ (cpu_has_avx && cpu_has_osxsave ? &xor_block_avx : FASTEST)
#else