On Tue, Dec 10, 2024 at 08:06:32PM +0800, Herbert Xu wrote: > On Tue, Dec 10, 2024 at 12:55:02PM +0100, Christian Marangi wrote: > > > > The main problem here is that .update only enqueue packet to be > > processed and we don't wait for it to finish as that would result in > > really bad performance. > > You can return from update prior to finishing the hash. However, > you must return -EINPROGRESS in that case. > > Once the hash has completed then you must export the hash state > from the hardware into the request object, and then invoke the > callback to inform the user that the update has finished. > > At that point, the user may call export. > > The user cannot call export prior to the update completing. > Oh! Ok, that is neat. Just to make sure everything is clear, to complete the request it's the same used for final, the ahash_request_complete(). I tought the -EINPROGRESS, ahash_request_complete() pattern was only for final. With the following implementation this is totally ok. Thanks for the clarification on this. -- Ansuel