On Wed, May 19, 2021 at 02:16:50PM +0000, Wei Yongjun wrote: > > @@ -448,13 +450,17 @@ qce_aead_async_req_handle(struct crypto_async_request *async_req) > if (ret) > return ret; Shouldn't this return do the error_free too? > dst_nents = dma_map_sg(qce->dev, rctx->dst_sg, rctx->dst_nents, dir_dst); > - if (dst_nents < 0) > + if (dst_nents < 0) { > + ret = dst_nents; > goto error_free; > + } > > if (diff_dst) { > src_nents = dma_map_sg(qce->dev, rctx->src_sg, rctx->src_nents, dir_src); > - if (src_nents < 0) > + if (src_nents < 0) { > + ret = src_nents; > goto error_unmap_dst; > + } > } else { > if (IS_CCM(rctx->flags) && IS_DECRYPT(rctx->flags)) > src_nents = dst_nents; If so please send a follow-up patch. Thanks, -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt