On Fri, Dec 27, 2013 at 01:21:36AM +0100, Marek Vasut wrote: > > > > - complete(data, err); > > > + areq->base.complete = complete; > > > + areq->base.data = data; > > > + > > > + complete(&areq->base, err); > > > > This looks completely bogus. While restoring areq isn't wrong per > > se, calling complete with &areq->base makes no sense. The original > > completion data is in the variable "data". > > Is there some documentation for this so I can understand why this is wrong, > please? I really don't quite get it, sorry. Actually, is there some > documentation for writing crypto API drivers at all please ? Well it's wrong because the completion function (req->base.complete) is meant to take data (req->base.data) as its first argument. So giving it a pointer to req->base makes no sense. Cheers, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- To unsubscribe from this list: send the line "unsubscribe linux-crypto" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html