Skip to content

Commit 5b0ab2f

Browse files
yanmarkmandavem330
authored andcommitted
net: mvpp2: set mac address does not require the stop/start sequence
Remove special stop/start handling from the set_mac_address callback. All this special care is not needed, and can be removed. It also simplifies the up/down status in the driver and helps avoiding possible link status mismatch issues. Signed-off-by: Yan Markman <[email protected]> [Antoine: commit message] Signed-off-by: Antoine Tenart <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 914365f commit 5b0ab2f

File tree

1 file changed

+7
-31
lines changed
  • drivers/net/ethernet/marvell

1 file changed

+7
-31
lines changed

drivers/net/ethernet/marvell/mvpp2.c

Lines changed: 7 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7357,42 +7357,18 @@ static void mvpp2_set_rx_mode(struct net_device *dev)
73577357

73587358
static int mvpp2_set_mac_address(struct net_device *dev, void *p)
73597359
{
7360-
struct mvpp2_port *port = netdev_priv(dev);
73617360
const struct sockaddr *addr = p;
73627361
int err;
73637362

7364-
if (!is_valid_ether_addr(addr->sa_data)) {
7365-
err = -EADDRNOTAVAIL;
7366-
goto log_error;
7367-
}
7368-
7369-
if (!netif_running(dev)) {
7370-
err = mvpp2_prs_update_mac_da(dev, addr->sa_data);
7371-
if (!err)
7372-
return 0;
7373-
/* Reconfigure parser to accept the original MAC address */
7374-
err = mvpp2_prs_update_mac_da(dev, dev->dev_addr);
7375-
if (err)
7376-
goto log_error;
7377-
}
7378-
7379-
mvpp2_stop_dev(port);
7363+
if (!is_valid_ether_addr(addr->sa_data))
7364+
return -EADDRNOTAVAIL;
73807365

73817366
err = mvpp2_prs_update_mac_da(dev, addr->sa_data);
7382-
if (!err)
7383-
goto out_start;
7384-
7385-
/* Reconfigure parser accept the original MAC address */
7386-
err = mvpp2_prs_update_mac_da(dev, dev->dev_addr);
7387-
if (err)
7388-
goto log_error;
7389-
out_start:
7390-
mvpp2_start_dev(port);
7391-
mvpp2_egress_enable(port);
7392-
mvpp2_ingress_enable(port);
7393-
return 0;
7394-
log_error:
7395-
netdev_err(dev, "failed to change MAC address\n");
7367+
if (err) {
7368+
/* Reconfigure parser accept the original MAC address */
7369+
mvpp2_prs_update_mac_da(dev, dev->dev_addr);
7370+
netdev_err(dev, "failed to change MAC address\n");
7371+
}
73967372
return err;
73977373
}
73987374

0 commit comments

Comments
 (0)