lineage_android_kernel_xiao.../include/crypto
Herbert Xu c104795918 crypto: ahash - Fix EINPROGRESS notification callback
commit ef0579b64e93188710d48667cb5e014926af9f1b upstream.

The ahash API modifies the request's callback function in order
to clean up after itself in some corner cases (unaligned final
and missing finup).

When the request is complete ahash will restore the original
callback and everything is fine.  However, when the request gets
an EBUSY on a full queue, an EINPROGRESS callback is made while
the request is still ongoing.

In this case the ahash API will incorrectly call its own callback.

This patch fixes the problem by creating a temporary request
object on the stack which is used to relay EINPROGRESS back to
the original completion function.

This patch also adds code to preserve the original flags value.

Fixes: ab6bf4e5e5 ("crypto: hash - Fix the pointer voodoo in...")
Reported-by: Sabrina Dubroca <sd@queasysnail.net>
Tested-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-04-21 09:31:23 +02:00
..
internal crypto: ahash - Fix EINPROGRESS notification callback 2017-04-21 09:31:23 +02:00
ablk_helper.h crypto: create generic version of ablk_helper 2013-09-24 06:02:24 +10:00
aead.h crypto: aead - Add chunk size 2016-07-18 17:35:38 +08:00
aes.h
akcipher.h crypto: doc - add akcipher API 2016-02-17 04:07:53 +08:00
algapi.h crypto: engine - move crypto engine to its own header 2016-09-07 21:08:26 +08:00
authenc.h crypto: authenc - Export key parsing helper function 2013-10-16 20:56:25 +08:00
b128ops.h
blowfish.h
cast5.h crypto: cast5/cast6 - move lookup tables to shared module 2012-12-06 17:16:26 +08:00
cast6.h crypto: cast5/cast6 - move lookup tables to shared module 2012-12-06 17:16:26 +08:00
cast_common.h crypto: cast5/cast6 - move lookup tables to shared module 2012-12-06 17:16:26 +08:00
chacha20.h random: replace non-blocking pool with a Chacha20-based CRNG 2016-07-03 00:57:23 -04:00
cryptd.h crypto: cryptd - Add helpers to check whether a tfm is queued 2016-06-23 18:29:52 +08:00
crypto_wq.h
ctr.h
des.h crypto: des_3des - add x86-64 assembly implementation 2014-06-20 21:27:58 +08:00
dh.h crypto: dh - Add DH software implementation 2016-06-23 18:29:56 +08:00
drbg.h crypto: drbg - prevent invalid SG mappings 2016-11-30 19:46:44 +08:00
ecdh.h crypto: ecdh - Add ECDH software support 2016-06-23 18:29:57 +08:00
engine.h crypto: engine - permit to enqueue ashash_request 2016-09-07 21:08:27 +08:00
gf128mul.h
ghash.h crypto: ghash-generic - move common definitions to a new header file 2016-10-02 22:26:40 +08:00
hash.h crypto: doc - document correct return value for request allocation 2016-04-15 22:35:44 +08:00
hash_info.h keys, trusted: select hash algorithm for TPM2 chips 2015-12-20 15:27:12 +02:00
if_alg.h crypto: af_alg - Allow af_af_alg_release_parent to be called on nokey path 2016-01-18 18:16:32 +08:00
kpp.h crypto: ecdh - Add ECDH software support 2016-06-23 18:29:57 +08:00
lrw.h
mcryptd.h crypto: sha1-mb - async implementation for sha1-mb 2016-06-23 18:29:55 +08:00
md5.h crypto: hash - add zero length message hash for shax and md5 2015-12-22 20:43:35 +08:00
null.h crypto: null - Remove default null blkcipher 2016-07-18 17:35:44 +08:00
padlock.h
pcrypt.h
pkcs7.h PKCS#7: Make trust determination dependent on contents of trust keyring 2016-04-06 16:14:24 +01:00
poly1305.h crypto: poly1305 - Export common Poly1305 helpers 2015-07-17 21:20:26 +08:00
public_key.h KEYS: Move the point of trust determination to __key_link() 2016-04-11 22:43:43 +01:00
rng.h crypto: doc - Fix typo in crypto-API.xml 2015-06-04 15:05:08 +08:00
scatterwalk.h crypto: scatterwalk - Inline start/map/done 2016-07-18 17:35:50 +08:00
serpent.h
sha.h crypto: hash - add zero length message hash for shax and md5 2015-12-22 20:43:35 +08:00
sha1_base.h crypto: sha1 - implement base layer for SHA-1 2015-04-10 21:39:39 +08:00
sha3.h crypto: sha3 - Add SHA-3 hash algorithm 2016-06-20 19:25:01 +08:00
sha256_base.h crypto: sha256 - implement base layer for SHA-256 2015-04-10 21:39:39 +08:00
sha512_base.h crypto: sha512 - implement base layer for SHA-512 2015-04-10 21:39:39 +08:00
skcipher.h crypto: skcipher - Add comment for skcipher_alg->base 2016-07-19 15:42:42 +08:00
twofish.h
vmac.h crypto: vmac - Make VMAC work when blocks aren't aligned 2012-10-15 22:33:20 +08:00
xts.h crypto: xts - consolidate sanity check for keys 2016-02-17 04:07:51 +08:00