Skip to content
  • Eric Biggers's avatar
    crypto: x86/salsa20 - remove x86 salsa20 implementations · b7b73cd5
    Eric Biggers authored
    The x86 assembly implementations of Salsa20 use the frame base pointer
    register (%ebp or %rbp), which breaks frame pointer convention and
    breaks stack traces when unwinding from an interrupt in the crypto code.
    Recent (v4.10+) kernels will warn about this, e.g.
    
    WARNING: kernel stack regs at 00000000a8291e69 in syzkaller047086:4677 has bad 'bp' value 000000001077994c
    [...]
    
    But after looking into it, I believe there's very little reason to still
    retain the x86 Salsa20 code.  First, these are *not* vectorized
    (SSE2/SSSE3/AVX2) implementations, which would be needed to get anywhere
    close to the best Salsa20 performance on any remotely modern x86
    processor; they're just regular x86 assembly.  Second, it's still
    unclear that anyone is actually using the kernel's Salsa20 at all,
    especially given that now ChaCha20 is supported too, and with much more
    efficient SSSE3 and AVX2 implementations.  Finally, in benchmarks I did
    on both Intel and AMD processors w...
    b7b73cd5