summaryrefslogtreecommitdiff
path: root/arch/x86
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 06:54:56 -0700
commit751190a69d7c885b98716e2aca339f6c4b988704 (patch)
tree2e69d878b020000016f633993af799453be464a2 /arch/x86
parent4c54b9db01842eb0f4eb54af6949b7606ea39e7a (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>
Diffstat (limited to 'arch/x86')
-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 7ea79c5fa1f2..492b29802f57 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