2014-10-20 08:18:25

by Geert Uytterhoeven

[permalink] [raw]
Subject: [PATCH] drivers: net: xgene: Add missing initialization in xgene_enet_ecc_init()

drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c: In function ‘xgene_enet_ecc_init’:
drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c:126: warning: ‘data’ may be used uninitialized in this function

Depending on the arbitrary value on the stack, the loop may terminate
too early, and cause a bogus -ENODEV failure.

Signed-off-by: Geert Uytterhoeven <[email protected]>
---
drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c b/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c
index e6d24c2101982444..19e13583b4259cd4 100644
--- a/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c
+++ b/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c
@@ -123,7 +123,7 @@ static u32 xgene_enet_rd_mac(struct xgene_enet_pdata *p, u32 rd_addr)
static int xgene_enet_ecc_init(struct xgene_enet_pdata *p)
{
struct net_device *ndev = p->ndev;
- u32 data;
+ u32 data = 0;
int i;

xgene_enet_wr_diag_csr(p, ENET_CFG_MEM_RAM_SHUTDOWN_ADDR, 0);
--
1.9.1


2014-10-20 18:26:51

by Iyappan Subramanian

[permalink] [raw]
Subject: Re: [PATCH] drivers: net: xgene: Add missing initialization in xgene_enet_ecc_init()

On Mon, Oct 20, 2014 at 1:08 AM, Geert Uytterhoeven
<[email protected]> wrote:
> drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c: In function ‘xgene_enet_ecc_init’:
> drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c:126: warning: ‘data’ may be used uninitialized in this function
>
> Depending on the arbitrary value on the stack, the loop may terminate
> too early, and cause a bogus -ENODEV failure.
>
> Signed-off-by: Geert Uytterhoeven <[email protected]>
> ---
> drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c b/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c
> index e6d24c2101982444..19e13583b4259cd4 100644
> --- a/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c
> +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c
> @@ -123,7 +123,7 @@ static u32 xgene_enet_rd_mac(struct xgene_enet_pdata *p, u32 rd_addr)
> static int xgene_enet_ecc_init(struct xgene_enet_pdata *p)
> {
> struct net_device *ndev = p->ndev;
> - u32 data;
> + u32 data = 0;
> int i;
>
> xgene_enet_wr_diag_csr(p, ENET_CFG_MEM_RAM_SHUTDOWN_ADDR, 0);
> --
> 1.9.1
>

Acked-by: Iyappan Subramanian <[email protected]>

2014-10-22 01:41:33

by David Miller

[permalink] [raw]
Subject: Re: [PATCH] drivers: net: xgene: Add missing initialization in xgene_enet_ecc_init()

From: Geert Uytterhoeven <[email protected]>
Date: Mon, 20 Oct 2014 10:08:16 +0200

> drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c: In function ?xgene_enet_ecc_init?:
> drivers/net/ethernet/apm/xgene/xgene_enet_sgmac.c:126: warning: ?data? may be used uninitialized in this function
>
> Depending on the arbitrary value on the stack, the loop may terminate
> too early, and cause a bogus -ENODEV failure.
>
> Signed-off-by: Geert Uytterhoeven <[email protected]>

Please, use a do { } while(0) loop to fix this, thanks.
????{.n?+???????+%?????ݶ??w??{.n?+????{??G?????{ay?ʇڙ?,j??f???h?????????z_??(?階?ݢj"???m??????G????????????&???~???iO???z??v?^?m???? ????????I?