From 76764801b8de94a2b4f61d7f8b52ca3a80396b13 Mon Sep 17 00:00:00 2001 From: Eric Vannier Date: Thu, 22 Mar 2018 21:32:56 -0700 Subject: [PATCH] Allow AESNI to be used on all processor supporting AESNI, not just Intel's This improves performance/reduced CPU usage. Tests performed: - Ran on Ivy Bridge and Ryzen and verified that AESNI is detected (crypto tests) - Ran on Ryzen, and observed 50% increased speed. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit BUG: https://bugzilla.samba.org/show_bug.cgi?id=13302 Signed-off-by: Eric Vannier Reviewed-by: Jeremy Allison Reviewed-by: Björn Jacke Autobuild-User(master): Jeremy Allison Autobuild-Date(master): Tue Mar 27 13:50:09 CEST 2018 on sn-devel-144 (cherry picked from commit 77d88d75f6262a855e818a9b2b4018f8b6ced7b0) --- lib/crypto/aes.c | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/lib/crypto/aes.c b/lib/crypto/aes.c index c226ac1b3df..d16d715482e 100644 --- a/lib/crypto/aes.c +++ b/lib/crypto/aes.c @@ -66,22 +66,6 @@ static bool has_intel_aes_instructions(void) return (bool)has_aes_instructions; } - __cpuid(cpuid_results, 0); - /* - * MSB LSB - * EBX = 'u' 'n' 'e' 'G' - * EDX = 'I' 'e' 'n' 'i' - * ECX = 'l' 'e' 't' 'n' - */ - if (memcmp((unsigned char *)&cpuid_results[1], "Genu", 4) != 0 || - memcmp((unsigned char *)&cpuid_results[3], - "ineI", 4) != 0 || - memcmp((unsigned char *)&cpuid_results[2], - "ntel", 4) != 0) { - has_aes_instructions = 0; - return (bool)has_aes_instructions; - } - __cpuid(cpuid_results, 1); has_aes_instructions = !!(cpuid_results[2] & (1 << 25)); return (bool)has_aes_instructions; -- 2.17.0.rc0.231.g781580f067-goog