On Mon, Jun 1, 2026 at 3:46 PM Shijith Thotton <[email protected]> wrote:
>
> Add validation to reject zero-length DMA operations early
> with -EINVAL, preventing queue disable.
>
> Signed-off-by: Shijith Thotton <[email protected]>


Added Fixes to 2/2 patch.

Series applied to dpdk-next-net-mrvl/for-main. Thanks



> ---
>  drivers/dma/odm/odm_dmadev.c | 18 +++++++++++++++---
>  1 file changed, 15 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/dma/odm/odm_dmadev.c b/drivers/dma/odm/odm_dmadev.c
> index 0211133bd4..7488b960fd 100644
> --- a/drivers/dma/odm/odm_dmadev.c
> +++ b/drivers/dma/odm/odm_dmadev.c
> @@ -110,6 +110,9 @@ odm_dmadev_copy(void *dev_private, uint16_t vchan, 
> rte_iova_t src, rte_iova_t ds
>         vq = &odm->vq[vchan];
>         hdr.s.xtype = vq->xtype;
>
> +       if (unlikely(!length))
> +               return -EINVAL;
> +
>         h = length;
>         h |= ((uint64_t)length << 32);
>
> @@ -262,14 +265,20 @@ odm_dmadev_copy_sg(void *dev_private, uint16_t vchan, 
> const struct rte_dma_sge *
>         pending_submit_len = vq->pending_submit_len;
>         pending_submit_cnt = vq->pending_submit_cnt;
>
> -       if (unlikely(nb_src > 4 || nb_dst > 4))
> +       if (unlikely(!nb_src || nb_src > 4 || !nb_dst || nb_dst > 4))
>                 return -EINVAL;
>
> -       for (i = 0; i < nb_src; i++)
> +       for (i = 0; i < nb_src; i++) {
> +               if (unlikely(!src[i].length))
> +                       return -EINVAL;
>                 s_sz += src[i].length;
> +       }
>
> -       for (i = 0; i < nb_dst; i++)
> +       for (i = 0; i < nb_dst; i++) {
> +               if (unlikely(!dst[i].length))
> +                       return -EINVAL;
>                 d_sz += dst[i].length;
> +       }
>
>         if (s_sz != d_sz)
>                 return -EINVAL;
> @@ -342,6 +351,9 @@ odm_dmadev_fill(void *dev_private, uint16_t vchan, 
> uint64_t pattern, rte_iova_t
>                 .s.nlst = 1,
>         };
>
> +       if (unlikely(!length))
> +               return -EINVAL;
> +
>         h = (uint64_t)length;
>
>         switch (pattern) {
> --
> 2.25.1
>

Reply via email to