[PATCH v2] net: axi_emac: Fix timeout test

Anand Moon linux.amoon at gmail.com
Mon Aug 18 13:40:29 CEST 2025


Hi Andrew,

On Mon, 18 Aug 2025 at 14:54, Andrew Goodbody
<andrew.goodbody at linaro.org> wrote:
>
> The timeout test in axi_dma_init is not correct due to the
> post-decrement used on the timeout variable which will mean timeout is
> not 0 if the timeout occurs. Make the timeout variable an int instead of
> a u32 and then test for timeout being -1.
>
> This issue was found by Smatch.
>
You can use read_poll_timeout instead of a while loop timeout?

Thanks
-Anand

> Signed-off-by: Andrew Goodbody <andrew.goodbody at linaro.org>
> ---
> Changes in v2:
> - Refactor the code so it returns on success from the while loop
> - Link to v1: https://lore.kernel.org/r/20250806-net_xilinx_axi-v1-1-00be06069c76@linaro.org
> ---
>  drivers/net/xilinx_axi_emac.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/xilinx_axi_emac.c b/drivers/net/xilinx_axi_emac.c
> index c8038ddef1b..22e119370c8 100644
> --- a/drivers/net/xilinx_axi_emac.c
> +++ b/drivers/net/xilinx_axi_emac.c
> @@ -558,7 +558,7 @@ static int axiemac_write_hwaddr(struct udevice *dev)
>  /* Reset DMA engine */
>  static void axi_dma_init(struct axidma_priv *priv)
>  {
> -       u32 timeout = 500;
> +       int timeout = 500;
>
>         /* Reset the engine so the hardware starts from a known state */
>         writel(XAXIDMA_CR_RESET_MASK, &priv->dmatx->control);
> @@ -571,11 +571,11 @@ static void axi_dma_init(struct axidma_priv *priv)
>                 if (!((readl(&priv->dmatx->control) |
>                                 readl(&priv->dmarx->control))
>                                                 & XAXIDMA_CR_RESET_MASK)) {
> -                       break;
> +                       return;
>                 }
>         }
> -       if (!timeout)
> -               printf("%s: Timeout\n", __func__);
> +
> +       printf("%s: Timeout\n", __func__);
>  }
>
>  static int axiemac_start(struct udevice *dev)
>
> ---
> base-commit: 007610da2cca405ea7739fc120d90085be4b6ac2
> change-id: 20250806-net_xilinx_axi-9ca9a791d611
>
> Best regards,
> --
> Andrew Goodbody <andrew.goodbody at linaro.org>
>


More information about the U-Boot mailing list