[4.19,090/100] net: stmmac: move stmmac_check_ether_addr() to driver probe

Message ID 20190430113613.062637557@linuxfoundation.org
State Superseded
Headers show
  • Untitled series #20093
Related show

Commit Message

Greg Kroah-Hartman April 30, 2019, 11:38 a.m.
From: Vinod Koul <vkoul@kernel.org>

[ Upstream commit b561af36b1841088552464cdc3f6371d92f17710 ]

stmmac_check_ether_addr() checks the MAC address and assigns one in
driver open(). In many cases when we create slave netdevice, the dev
addr is inherited from master but the master dev addr maybe NULL at
that time, so move this call to driver probe so that address is
always valid.

Signed-off-by: Xiaofei Shen <xiaofeis@codeaurora.org>

Tested-by: Xiaofei Shen <xiaofeis@codeaurora.org>

Signed-off-by: Sneh Shah <snehshah@codeaurora.org>

Signed-off-by: Vinod Koul <vkoul@kernel.org>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

Signed-off-by: David S. Miller <davem@davemloft.net>

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)


--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
@@ -2595,8 +2595,6 @@  static int stmmac_open(struct net_device
 	u32 chan;
 	int ret;
-	stmmac_check_ether_addr(priv);
 	if (priv->hw->pcs != STMMAC_PCS_RGMII &&
 	    priv->hw->pcs != STMMAC_PCS_TBI &&
 	    priv->hw->pcs != STMMAC_PCS_RTBI) {
@@ -4296,6 +4294,8 @@  int stmmac_dvr_probe(struct device *devi
 	if (ret)
 		goto error_hw_init;
+	stmmac_check_ether_addr(priv);
 	/* Configure real RX and TX queues */
 	netif_set_real_num_rx_queues(ndev, priv->plat->rx_queues_to_use);
 	netif_set_real_num_tx_queues(ndev, priv->plat->tx_queues_to_use);