On Thu, Feb 06, 2020 at 06:15:34PM +0100, Florian Bezdeka wrote:
commit 4549f7e5aa27ffc2cba63b5db8842a3b486f5688 upstream.
The geode AES driver is heavily broken because it stores per-request state in the transform context. So it will crash or produce the wrong result if used by any of the many places in the kernel that issue concurrent requests for the same transform object.
This driver is also implemented using the deprecated blkcipher API, which makes it difficult to fix, and puts it among the drivers preventing that API from being removed.
Convert this driver to use the skcipher API, and change it to not store per-request state in the transform context.
Fixes: 9fe757b ("[PATCH] crypto: Add support for the Geode LX AES hardware") Signed-off-by: Eric Biggers ebiggers@google.com Signed-off-by: Herbert Xu herbert@gondor.apana.org.au Signed-off-by: Florian Bezdeka florian@bezdeka.de
drivers/crypto/geode-aes.c | 442 ++++++++++++------------------------- drivers/crypto/geode-aes.h | 15 +- 2 files changed, 149 insertions(+), 308 deletions(-)
Thanks for the backport, now applied.
greg k-h