summaryrefslogtreecommitdiff
path: root/lib/crc/x86/crc-t10dif.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/crc/x86/crc-t10dif.h')
-rw-r--r--lib/crc/x86/crc-t10dif.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/crc/x86/crc-t10dif.h b/lib/crc/x86/crc-t10dif.h
index eb1f23db4daa..2a02a3026f3f 100644
--- a/lib/crc/x86/crc-t10dif.h
+++ b/lib/crc/x86/crc-t10dif.h
@@ -23,6 +23,13 @@ static inline void crc_t10dif_mod_init_arch(void)
{
if (boot_cpu_has(X86_FEATURE_PCLMULQDQ)) {
static_branch_enable(&have_pclmulqdq);
- INIT_CRC_PCLMUL(crc16_msb);
+ if (have_vpclmul()) {
+ if (have_avx512())
+ static_call_update(crc16_msb_pclmul,
+ crc16_msb_vpclmul_avx512);
+ else
+ static_call_update(crc16_msb_pclmul,
+ crc16_msb_vpclmul_avx2);
+ }
}
}