Re: [PATCH] drivers: net: xgene: Simplify xgene_enet_setup_mss() to kill warning
On Fri, Feb 24, 2017 at 2:30 AM, Geert Uytterhoevenwrote: > With gcc-4.1.2 and -Os: > > drivers/net/ethernet/apm/xgene/xgene_enet_main.c: In function > ‘xgene_enet_start_xmit’: > drivers/net/ethernet/apm/xgene/xgene_enet_main.c:297: warning: > ‘mss_index’ may be used uninitialized in this function > > Using a separate variable to track success may confuse the compiler. > Preinitialize mss_index with -EBUSY and check for negative error values > instead to kill the warning. > > Signed-off-by: Geert Uytterhoeven > --- > Compile-tested only. > > drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 13 +++-- > 1 file changed, 3 insertions(+), 10 deletions(-) > > diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c > b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c > index d0d0d12b531fc683..e536301acfdec9fd 100644 > --- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c > +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c > @@ -293,36 +293,29 @@ static int xgene_enet_tx_completion(struct > xgene_enet_desc_ring *cp_ring, > static int xgene_enet_setup_mss(struct net_device *ndev, u32 mss) > { > struct xgene_enet_pdata *pdata = netdev_priv(ndev); > - bool mss_index_found = false; > - int mss_index; > + int mss_index = -EBUSY; > int i; > > spin_lock(>mss_lock); > > /* Reuse the slot if MSS matches */ > - for (i = 0; !mss_index_found && i < NUM_MSS_REG; i++) { > + for (i = 0; mss_index < 0 && i < NUM_MSS_REG; i++) { > if (pdata->mss[i] == mss) { > pdata->mss_refcnt[i]++; > mss_index = i; > - mss_index_found = true; > } > } > > /* Overwrite the slot with ref_count = 0 */ > - for (i = 0; !mss_index_found && i < NUM_MSS_REG; i++) { > + for (i = 0; mss_index < 0 && i < NUM_MSS_REG; i++) { > if (!pdata->mss_refcnt[i]) { > pdata->mss_refcnt[i]++; > pdata->mac_ops->set_mss(pdata, mss, i); > pdata->mss[i] = mss; > mss_index = i; > - mss_index_found = true; > } > } > > - /* No slots with ref_count = 0 available, return busy */ > - if (!mss_index_found) > - mss_index = -EBUSY; > - > spin_unlock(>mss_lock); > > return mss_index; > -- > 2.7.4 > Thanks. Acked-by: Iyappan Subramanian
Re: [PATCH] drivers: net: xgene: Simplify xgene_enet_setup_mss() to kill warning
From: Geert UytterhoevenDate: Fri, 24 Feb 2017 11:30:03 +0100 > With gcc-4.1.2 and -Os: > > drivers/net/ethernet/apm/xgene/xgene_enet_main.c: In function > ‘xgene_enet_start_xmit’: > drivers/net/ethernet/apm/xgene/xgene_enet_main.c:297: warning: > ‘mss_index’ may be used uninitialized in this function > > Using a separate variable to track success may confuse the compiler. > Preinitialize mss_index with -EBUSY and check for negative error values > instead to kill the warning. > > Signed-off-by: Geert Uytterhoeven Applied, thank you.
[PATCH] drivers: net: xgene: Simplify xgene_enet_setup_mss() to kill warning
With gcc-4.1.2 and -Os: drivers/net/ethernet/apm/xgene/xgene_enet_main.c: In function ‘xgene_enet_start_xmit’: drivers/net/ethernet/apm/xgene/xgene_enet_main.c:297: warning: ‘mss_index’ may be used uninitialized in this function Using a separate variable to track success may confuse the compiler. Preinitialize mss_index with -EBUSY and check for negative error values instead to kill the warning. Signed-off-by: Geert Uytterhoeven--- Compile-tested only. drivers/net/ethernet/apm/xgene/xgene_enet_main.c | 13 +++-- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c index d0d0d12b531fc683..e536301acfdec9fd 100644 --- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c +++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c @@ -293,36 +293,29 @@ static int xgene_enet_tx_completion(struct xgene_enet_desc_ring *cp_ring, static int xgene_enet_setup_mss(struct net_device *ndev, u32 mss) { struct xgene_enet_pdata *pdata = netdev_priv(ndev); - bool mss_index_found = false; - int mss_index; + int mss_index = -EBUSY; int i; spin_lock(>mss_lock); /* Reuse the slot if MSS matches */ - for (i = 0; !mss_index_found && i < NUM_MSS_REG; i++) { + for (i = 0; mss_index < 0 && i < NUM_MSS_REG; i++) { if (pdata->mss[i] == mss) { pdata->mss_refcnt[i]++; mss_index = i; - mss_index_found = true; } } /* Overwrite the slot with ref_count = 0 */ - for (i = 0; !mss_index_found && i < NUM_MSS_REG; i++) { + for (i = 0; mss_index < 0 && i < NUM_MSS_REG; i++) { if (!pdata->mss_refcnt[i]) { pdata->mss_refcnt[i]++; pdata->mac_ops->set_mss(pdata, mss, i); pdata->mss[i] = mss; mss_index = i; - mss_index_found = true; } } - /* No slots with ref_count = 0 available, return busy */ - if (!mss_index_found) - mss_index = -EBUSY; - spin_unlock(>mss_lock); return mss_index; -- 2.7.4