crypto-native: avoid crash on 12th and 13th gen Intel client CPUs 82/38482/2
authorDamjan Marion <damarion@cisco.com>
Tue, 14 Mar 2023 12:15:58 +0000 (13:15 +0100)
committerDave Wallace <dwallacelf@gmail.com>
Tue, 14 Mar 2023 16:00:14 +0000 (16:00 +0000)
Those CPUs are announcing VAES capability but they don't support AVX512.

Type: fix
Fixes: 73a60b2
Change-Id: I7b4be95e91bb6f367cd71461f1126690f3ecd988
Signed-off-by: Damjan Marion <damarion@cisco.com>
src/plugins/crypto_native/main.c

index 712c333..2eedcd7 100644 (file)
@@ -75,7 +75,8 @@ crypto_native_init (vlib_main_t * vm)
 
   if (0);
 #if __x86_64__
-  else if (crypto_native_aes_cbc_init_icl && clib_cpu_supports_vaes ())
+  else if (crypto_native_aes_cbc_init_icl && clib_cpu_supports_vaes () &&
+          clib_cpu_supports_avx512f ())
     error = crypto_native_aes_cbc_init_icl (vm);
   else if (crypto_native_aes_cbc_init_skx && clib_cpu_supports_avx512f ())
     error = crypto_native_aes_cbc_init_skx (vm);
@@ -97,7 +98,8 @@ crypto_native_init (vlib_main_t * vm)
 #if __x86_64__
   if (clib_cpu_supports_pclmulqdq ())
     {
-      if (crypto_native_aes_gcm_init_icl && clib_cpu_supports_vaes ())
+      if (crypto_native_aes_gcm_init_icl && clib_cpu_supports_vaes () &&
+         clib_cpu_supports_avx512f ())
        error = crypto_native_aes_gcm_init_icl (vm);
       else if (crypto_native_aes_gcm_init_skx && clib_cpu_supports_avx512f ())
        error = crypto_native_aes_gcm_init_skx (vm);