crypto: s5p-sss: Fix race in error handling
authorChristoph Manszewski <c.manszewski@samsung.com>
Mon, 17 Sep 2018 15:09:27 +0000 (17:09 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 28 Sep 2018 04:46:06 +0000 (12:46 +0800)
commit5842cd44786055231b233ed5ed98cdb63ffb7db3
tree31ad573373a4d3ccbc08f353988a9e2a595a1172
parentcd560235d8f9ddd94aa51e1c4dabdf3212b9b241
crypto: s5p-sss: Fix race in error handling

Remove a race condition introduced by error path in functions:
s5p_aes_interrupt and s5p_aes_crypt_start. Setting the busy field of
struct s5p_aes_dev to false made it possible for s5p_tasklet_cb to
change the req field, before s5p_aes_complete was called.

Change the first parameter of s5p_aes_complete to struct
ablkcipher_request. Before spin_unlock, make a copy of the currently
handled request, to ensure s5p_aes_complete function call with the
correct request.

Signed-off-by: Christoph Manszewski <c.manszewski@samsung.com>
Acked-by: Kamil Konieczny <k.konieczny@partner.samsung.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/s5p-sss.c