Quoting Peter Harliman Liem (2022-09-06 04:51:49) > From commit d03c54419274 ("dma-mapping: disallow .map_sg > operations from returning zero on error"), dma_map_sg() > produces warning if size is 0. This results in visible > warnings if crypto length is zero. > To avoid that, we avoid calling dma_map_sg if size is zero. > > Fixes: d03c54419274 ("dma-mapping: disallow .map_sg operations from returning zero on error") You can't reference the commit above, it's not introducing the issue but the warning itself. The actual commit introducing the below logic should be referenced. Alternatively since the warning was introduced latter than the logic and this is not a huge issue, you might resend it w/o the Fixes tag as well. > Signed-off-by: Peter Harliman Liem <pliem@xxxxxxxxxxxxx> With the Fixes: tag fixed, Acked-by: Antoine Tenart <atenart@xxxxxxxxxx> Thanks! > --- > v2: > Add fixes tag > > drivers/crypto/inside-secure/safexcel_cipher.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/drivers/crypto/inside-secure/safexcel_cipher.c b/drivers/crypto/inside-secure/safexcel_cipher.c > index d68ef16650d4..3775497775e0 100644 > --- a/drivers/crypto/inside-secure/safexcel_cipher.c > +++ b/drivers/crypto/inside-secure/safexcel_cipher.c > @@ -737,14 +737,17 @@ static int safexcel_send_req(struct crypto_async_request *base, int ring, > max(totlen_src, totlen_dst)); > return -EINVAL; > } > - dma_map_sg(priv->dev, src, sreq->nr_src, DMA_BIDIRECTIONAL); > + if (sreq->nr_src > 0) > + dma_map_sg(priv->dev, src, sreq->nr_src, DMA_BIDIRECTIONAL); > } else { > if (unlikely(totlen_src && (sreq->nr_src <= 0))) { > dev_err(priv->dev, "Source buffer not large enough (need %d bytes)!", > totlen_src); > return -EINVAL; > } > - dma_map_sg(priv->dev, src, sreq->nr_src, DMA_TO_DEVICE); > + > + if (sreq->nr_src > 0) > + dma_map_sg(priv->dev, src, sreq->nr_src, DMA_TO_DEVICE); > > if (unlikely(totlen_dst && (sreq->nr_dst <= 0))) { > dev_err(priv->dev, "Dest buffer not large enough (need %d bytes)!", > @@ -753,7 +756,9 @@ static int safexcel_send_req(struct crypto_async_request *base, int ring, > DMA_TO_DEVICE); > return -EINVAL; > } > - dma_map_sg(priv->dev, dst, sreq->nr_dst, DMA_FROM_DEVICE); > + > + if (sreq->nr_dst > 0) > + dma_map_sg(priv->dev, dst, sreq->nr_dst, DMA_FROM_DEVICE); > } > > memcpy(ctx->base.ctxr->data, ctx->key, ctx->key_len); > -- > 2.17.1 >