Re: [PATCH 16/18] crypto: talitos - do hw_context DMA mapping outside the requests

From: Christophe LEROY
Date: Mon Feb 19 2018 - 04:14:35 EST




Le 19/02/2018 à 09:30, Horia Geantă a écrit :
On 2/19/2018 9:58 AM, Christophe LEROY wrote:
Le 18/02/2018 à 18:14, Horia Geantă a écrit :
There is no ahash_exit() callback mirroring ahash_init().

The clean-up of request ctx should be done in the last states of the hash flows
described here:
https://www.kernel.org/doc/html/latest/crypto/devel-algos.html#cipher-definition-with-struct-shash-alg-and-ahash-alg
for e.g. in the final() callback.

Unfortunatly it seems that we can't rely on those finalising functions
being called all the time.
If you look into test_ahash_jiffies() for instance, in case of error the
call of crypto_hash_final() is skipped.

If test_ahash_jiffies() errors before calling crypto_ahash_final(req), this
means a previous callback failed.
Accordingly, DMA unmapping should be performed also on the corresponding errors
paths in the driver.


And what about ALGIF path from user space ?
What if the user never calls the last sendmsg() which will call hash_finup() ?

Christophe