On Tue, Dec 13, 2016 at 09:42:45PM +0100, Stephan Müller wrote: > > + /* > + * The async operation may have processed only a subset of > + * the data that was initially received from the caller. > + * Thus, we only can release the data that a cipher operation > + * processed. > + */ > + if (len < sg->length) { > + /* ensure that empty SGLs are not referenced any more */ > + sreq->tsg = sg; Hmm if you change sreq->tsg how is the original tsg ever going to get freed? > + > + /* advance the buffers to the unprocessed data */ > + sg->length -= len; > + sg->offset += len; > + return; > + } > + > + len -= sg->length; > + put_page(page); > + } > > kfree(sreq->tsg); Thanks, -- 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