[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <DB8PR04MB679513459A42E7A7982CE91EE6129@DB8PR04MB6795.eurprd04.prod.outlook.com>
Date: Thu, 15 Jul 2021 10:12:04 +0000
From: Joakim Zhang <qiangqing.zhang@....com>
To: "menglong8.dong@...il.com" <menglong8.dong@...il.com>,
"davem@...emloft.net" <davem@...emloft.net>
CC: "peppe.cavallaro@...com" <peppe.cavallaro@...com>,
"alexandre.torgue@...s.st.com" <alexandre.torgue@...s.st.com>,
"joabreu@...opsys.com" <joabreu@...opsys.com>,
"kuba@...nel.org" <kuba@...nel.org>,
"mcoquelin.stm32@...il.com" <mcoquelin.stm32@...il.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-stm32@...md-mailman.stormreply.com"
<linux-stm32@...md-mailman.stormreply.com>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Zhang Yunkai <zhang.yunkai@....com.cn>,
Zeal Robot <zealci@....com.cn>
Subject: RE: [PATCH linux-next] net:stmmac: Fix the unsigned expression
compared with zero
> -----Original Message-----
> From: menglong8.dong@...il.com <menglong8.dong@...il.com>
> Sent: 2021年7月15日 15:46
> To: davem@...emloft.net
> Cc: peppe.cavallaro@...com; alexandre.torgue@...s.st.com;
> joabreu@...opsys.com; kuba@...nel.org; mcoquelin.stm32@...il.com;
> netdev@...r.kernel.org; linux-stm32@...md-mailman.stormreply.com;
> linux-arm-kernel@...ts.infradead.org; linux-kernel@...r.kernel.org; Zhang
> Yunkai <zhang.yunkai@....com.cn>; Zeal Robot <zealci@....com.cn>
> Subject: [PATCH linux-next] net:stmmac: Fix the unsigned expression compared
> with zero
>
> From: Zhang Yunkai <zhang.yunkai@....com.cn>
>
> WARNING: Unsigned expression "queue" compared with zero.
> Reported-by: Zeal Robot <zealci@....com.cn>
> Signed-off-by: Zhang Yunkai <zhang.yunkai@....com.cn>
> ---
> drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> index 7b8404a21544..a4cf2c640531 100644
> --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
> @@ -1699,7 +1699,7 @@ static int init_dma_rx_desc_rings(struct net_device
> *dev, gfp_t flags)
> return 0;
>
> err_init_rx_buffers:
> - while (queue >= 0) {
> + do {
> struct stmmac_rx_queue *rx_q = &priv->rx_queue[queue];
>
> if (rx_q->xsk_pool)
> @@ -1710,11 +1710,7 @@ static int init_dma_rx_desc_rings(struct
> net_device *dev, gfp_t flags)
> rx_q->buf_alloc_num = 0;
> rx_q->xsk_pool = NULL;
>
> - if (queue == 0)
> - break;
> -
> - queue--;
> - }
> + } while (queue--);
>
> return ret;
> }
This is a real Coverity issue since queue variable is defined as u32, but there is no breakage from logic, it will break while loop when queue equal 0, and queue[0] actually need be handled.
After your code change, queue[0] will not be handled, right? It will break the logic. If you want to fix the this issue, I think the easiest way is to define queue variable to int.
Best Regards,
Joakim Zhang
> --
> 2.25.1
Powered by blists - more mailing lists