summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/apm
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2016-12-08 22:57:05 +0100
committerDavid S. Miller <davem@davemloft.net>2016-12-08 21:30:54 -0500
commitf006b2c5dff35cb32ee77a0cbcabb52d90118c19 (patch)
tree6cf146ac98bcde1e952430951046a9186227c6db /drivers/net/ethernet/apm
parentdece303fa3aaaf1dbaf4ddd95e8af1c16ceb7bb1 (diff)
downloadlinux-stable-f006b2c5dff35cb32ee77a0cbcabb52d90118c19.tar.gz
linux-stable-f006b2c5dff35cb32ee77a0cbcabb52d90118c19.tar.bz2
linux-stable-f006b2c5dff35cb32ee77a0cbcabb52d90118c19.zip
net: xgene: avoid bogus maybe-uninitialized warning
In some configurations, gcc cannot trace the state of variables across a spin_unlock() barrier, leading to a warning about correct code: xgene_enet_main.c: In function 'xgene_enet_start_xmit': ../../../phy/mdio-xgene.h:112:14: error: 'mss_index' may be used uninitialized in this function [-Werror=maybe-uninitialized] Here we can trivially move the assignment before that spin_unlock, which reliably avoids the warning. Fixes: e3978673f514 ("drivers: net: xgene: Fix MSS programming") Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/apm')
-rw-r--r--drivers/net/ethernet/apm/xgene/xgene_enet_main.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
index 884a334e82d0..523b8eff6d7b 100644
--- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
+++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
@@ -319,11 +319,11 @@ static int xgene_enet_setup_mss(struct net_device *ndev, u32 mss)
}
}
- spin_unlock(&pdata->mss_lock);
-
/* No slots with ref_count = 0 available, return busy */
if (!mss_index_found)
- return -EBUSY;
+ mss_index = -EBUSY;
+
+ spin_unlock(&pdata->mss_lock);
return mss_index;
}