| From e368bf484b807a8f543f31858af9f6dda46e0c74 Mon Sep 17 00:00:00 2001 |
| From: Bhadram Varka <vbhadram@nvidia.com> |
| Date: Fri, 27 Oct 2017 08:22:02 +0530 |
| Subject: stmmac: copy unicast mac address to MAC registers |
| |
| [ Upstream commit a830405ee452ddc4101c3c9334e6fedd42c6b357 ] |
| |
| Currently stmmac driver not copying the valid ethernet |
| MAC address to MAC registers. This patch takes care |
| of updating the MAC register with MAC address. |
| |
| Signed-off-by: Bhadram Varka <vbhadram@nvidia.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| .../net/ethernet/stmicro/stmmac/stmmac_main.c | 16 +++++++++++++++- |
| 1 file changed, 15 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |
| index 7bba30f24135..059113dce6e0 100644 |
| --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |
| +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |
| @@ -2529,6 +2529,20 @@ static int stmmac_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) |
| return ret; |
| } |
| |
| +static int stmmac_set_mac_address(struct net_device *ndev, void *addr) |
| +{ |
| + struct stmmac_priv *priv = netdev_priv(ndev); |
| + int ret = 0; |
| + |
| + ret = eth_mac_addr(ndev, addr); |
| + if (ret) |
| + return ret; |
| + |
| + priv->hw->mac->set_umac_addr(priv->hw, ndev->dev_addr, 0); |
| + |
| + return ret; |
| +} |
| + |
| #ifdef CONFIG_DEBUG_FS |
| static struct dentry *stmmac_fs_dir; |
| |
| @@ -2730,7 +2744,7 @@ static const struct net_device_ops stmmac_netdev_ops = { |
| #ifdef CONFIG_NET_POLL_CONTROLLER |
| .ndo_poll_controller = stmmac_poll_controller, |
| #endif |
| - .ndo_set_mac_address = eth_mac_addr, |
| + .ndo_set_mac_address = stmmac_set_mac_address, |
| }; |
| |
| /** |
| -- |
| 2.19.1 |
| |