2017-04-10, 16:44:50 +0800, Herbert Xu wrote: > 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. > > Cc: <vger@xxxxxxxxxxxxxxxxx> Should that be stable@xxxxxxxxxxxxxxx? > Reported-by: Sabrina Dubroca <sdubroca@xxxxxxxxxx> > Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> The definition of ahash_request_flags() was missing, so I added: static inline u32 ahash_request_flags(struct ahash_request *req) { return req->base.flags; } And with this, my tests seem fine. Tested-by: Sabrina Dubroca <sd@xxxxxxxxxxxxxxx> Could also you change the 'Reported-by:' to that email address? Thanks, -- Sabrina