On Mon, 26 Feb 2018 14:02:33 +0000 Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx> wrote: > Hi All, Please ignore - stupid bug in my code. Sorry for the noise. Jonathan > > I seem to get much the same whether using af_alg or tcrypt to poke > the support for ahashes that I just added to our driver. > > Taking the af_alg path as that is the one I've chased further. > We return -EINPROGRESS (along with it seems lots of other ahash > implementations) if we have some data in flight. The hardware is > asynchronous and we don't currently bother to check if it is > already done or not (may do so later as an optimization). > > In hash_sendmsg (algif_hash.c) we have > > err = crypto_wait_req(crypto_ahash_update(&ctx->req), &ctx->wait); > > Now crypto_wait does a wait_for_completion if it gets -EINPROGRESS > from the crypto_ahash_update call. > > Given hash_sendmsg is called from a socket we can't do a wait_for_completion > here safely. I note for the various wait calls in the equivalent skcipher code > we drop through with an error if they would otherwise sleep. > > I'm guessing that I'm missing something! As far as I can tell the first > few drivers I looked at caam_hash and crypto4xx do exactly the same thing > I am doing (superficially anyway)... > > Anyone have any thoughts? > > Thanks, > > Jonathan > _______________________________________________ > Linuxarm mailing list > Linuxarm@xxxxxxxxxx > http://hulk.huawei.com/mailman/listinfo/linuxarm