Message ID | 20190422094532.5519-1-vkoul@kernel.org (mailing list archive) |
---|---|
State | Mainlined, archived |
Commit | b561af36b1841088552464cdc3f6371d92f17710 |
Headers | show |
Series | [v2] net: stmmac: move stmmac_check_ether_addr() to driver probe | expand |
On Mon, Apr 22, 2019 at 03:15:32PM +0530, Vinod Koul wrote: > 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> Thanks for doing it this way. Reviewed-by: Andrew Lunn <andrew@lunn.ch> Andrew
From: Vinod Koul <vkoul@kernel.org> Date: Mon, 22 Apr 2019 15:15:32 +0530 > 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> > --- > > Changes in v2: > As discussed in [1] we move the stmmac driver inherting the mac address > from probe to open > [1]: https://lore.kernel.org/netdev/20190222125654.12478-1-vkoul@kernel.org/ Applied and queued up for -stable.
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c index 7a895a2889e3..5ab2733e15e2 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -2616,8 +2616,6 @@ static int stmmac_open(struct net_device *dev) 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) { @@ -4303,6 +4301,8 @@ int stmmac_dvr_probe(struct device *device, 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);