From: Mark Wooding Date: Mon, 16 Dec 2019 17:20:15 +0000 (+0000) Subject: Merge branch '2.4.x' into 2.5.x X-Git-Tag: 2.5.2~8 X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb/commitdiff_plain/89717a56084f7cac56330c8527fbaff99b15709b Merge branch '2.4.x' into 2.5.x * 2.4.x: rand/rand.c: Mix the pool key in `rand_gate' and `rand_stretch'. rand/lcrand.c: Swap flags and max so generator not advertised as strong. pub/dh-kcdsa.c: Free the correct factor. math/limlee.c: Don't leak the factor vector on overall failure. math/limlee.c: Handle an abort from `pgen' correctly. math/pgen.c: Don't free the tester if it's not set up. math/ec-exp.h: Fix segfault when base point is at infinity. key/key-data.c (key_copydata): Fix catastrophic bug. key/key-data.c (key_split): Fix long-standing reference leak. key/key-misc.c (key_bytag): Don't give up because a by-id search fails. base/dispatch.c, etc.: Check that `rdrand' works. --- 89717a56084f7cac56330c8527fbaff99b15709b diff --cc base/dispatch.c index bea97b40,42c64ee5..abd019f6 --- a/base/dispatch.c +++ b/base/dispatch.c @@@ -553,16 -597,7 +606,16 @@@ int cpu_feature_p(int feat cpuid_features_p(CPUID1D_SSE2, CPUID1C_AESNI) && xmm_registers_available_p()); CASE_CPUFEAT(X86_RDRAND, "x86:rdrand", - cpuid_features_p(0, CPUID1C_RDRAND)); + cpuid_features_p(0, CPUID1C_RDRAND) && rdrand_works_p()); + CASE_CPUFEAT(X86_AVX, "x86:avx", + cpuid_features_p(0, CPUID1C_AVX) && + xmm_registers_available_p()); + CASE_CPUFEAT(X86_SSSE3, "x86:ssse3", + cpuid_features_p(0, CPUID1C_SSSE3) && + xmm_registers_available_p()); + CASE_CPUFEAT(X86_PCLMUL, "x86:pclmul", + cpuid_features_p(0, CPUID1C_PCLMUL) && + xmm_registers_available_p()); #endif #ifdef CAPMAP # define FEATP__CASE(feat, tok) \