crypto: x86/aegis,morus - Fix and simplify CPUID checks
It turns out I had misunderstood how the x86_match_cpu() function works. It evaluates a logical OR of the matching conditions, not logical AND. This caused the CPU feature checks for AEGIS to pass even if only SSE2 (but not AES-NI) was supported (or vice versa), leading to potential crashes if something tried to use the registered algs. This patch switches the checks to a simpler method that is used e.g. in the Camellia x86 code. The patch also removes the MODULE_DEVICE_TABLE declarations which actually seem to cause the modules to be auto-loaded at boot, which is not desired. The crypto API on-demand module loading is sufficient. Fixes: 1d373d4e ("crypto: x86 - Add optimized AEGIS implementations") Fixes: 6ecc9d9f ("crypto: x86 - Add optimized MORUS implementations") Signed-off-by:Ondrej Mosnacek <omosnace@redhat.com> Tested-by:
Milan Broz <gmazyland@gmail.com> Signed-off-by:
Herbert Xu <herbert@gondor.apana.org.au>
Showing
- arch/x86/crypto/aegis128-aesni-glue.c 4 additions, 8 deletionsarch/x86/crypto/aegis128-aesni-glue.c
- arch/x86/crypto/aegis128l-aesni-glue.c 4 additions, 8 deletionsarch/x86/crypto/aegis128l-aesni-glue.c
- arch/x86/crypto/aegis256-aesni-glue.c 4 additions, 8 deletionsarch/x86/crypto/aegis256-aesni-glue.c
- arch/x86/crypto/morus1280-avx2-glue.c 3 additions, 7 deletionsarch/x86/crypto/morus1280-avx2-glue.c
- arch/x86/crypto/morus1280-sse2-glue.c 3 additions, 7 deletionsarch/x86/crypto/morus1280-sse2-glue.c
- arch/x86/crypto/morus640-sse2-glue.c 3 additions, 7 deletionsarch/x86/crypto/morus640-sse2-glue.c
Loading
Please register or sign in to comment