drivers: net: xgene: Simplify xgene_enet_setup_mss() to kill warning
authorGeert Uytterhoeven <geert@linux-m68k.org>
Fri, 24 Feb 2017 10:30:03 +0000 (11:30 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 24 Feb 2017 19:29:09 +0000 (14:29 -0500)
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 <geert@linux-m68k.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/apm/xgene/xgene_enet_main.c

index d0d0d12b531fc683613455fc3ab6cb9fa3b9fea9..e536301acfdec9fd893d25061f4e4b64ca55c388 100644 (file)
@@ -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(&pdata->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(&pdata->mss_lock);
 
        return mss_index;