On Mon, Feb 06, 2017 at 07:54:37AM +0100, Johannes Berg wrote: > Hi, > > > The skcipher could have been of the async variant which may return > > from skcipher_encrypt() with -EINPROGRESS after having queued the > > request. > > The FILS AEAD implementation here does not have code for dealing with > > that possibility, so allocate a sync cipher explicitly to avoid > > potential issues with hardware accelerators. > > > - tfm2 = crypto_alloc_skcipher("ctr(aes)", 0, 0); > > + tfm2 = crypto_alloc_skcipher("ctr(aes)", 0, > > CRYPTO_ALG_ASYNC); > > I'll apply this, after having found some code elsewhere that does > something similar, but I'll note that this is super confusing, since > the only documentation mentioning this flag says: > > The mask flag restricts the type of cipher. The only allowed flag is > CRYPTO_ALG_ASYNC to restrict the cipher lookup function to > asynchronous ciphers. Usually, a caller provides a 0 for the mask flag.
The type and mask are used as follows when checking an algorithm: alg->type & mask == type & mask So to request a synchronous algorithm (that is, one with the CRYPTO_ALG_ASYNC bit set to zero), you would set type to 0 and mask to CRYPTO_ALG_ASYNC. Cheers, -- Email: Herbert Xu <herb...@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt