Message ID | 1396048764-3301-1-git-send-email-dev@lynxeye.de |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
From: Lucas Stach <dev@lynxeye.de> Date: Sat, 29 Mar 2014 00:19:24 +0100 > @@ -1898,10 +1898,11 @@ fec_set_mac_address(struct net_device *ndev, void *p) > struct fec_enet_private *fep = netdev_priv(ndev); > struct sockaddr *addr = p; > > - if (!is_valid_ether_addr(addr->sa_data)) > - return -EADDRNOTAVAIL; > - > - memcpy(ndev->dev_addr, addr->sa_data, ndev->addr_len); > + if (p) { > + if (!is_valid_ether_addr(addr->sa_data)) > + return -EADDRNOTAVAIL; > + memcpy(ndev->dev_addr, addr->sa_data, ndev->addr_len); > + } This test looks awkward, if we're going to dereference and use 'addr', then test 'addr' instead of 'p'. Thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index e19315eaf2dd..a8958cc12ef3 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -1898,10 +1898,11 @@ fec_set_mac_address(struct net_device *ndev, void *p) struct fec_enet_private *fep = netdev_priv(ndev); struct sockaddr *addr = p; - if (!is_valid_ether_addr(addr->sa_data)) - return -EADDRNOTAVAIL; - - memcpy(ndev->dev_addr, addr->sa_data, ndev->addr_len); + if (p) { + if (!is_valid_ether_addr(addr->sa_data)) + return -EADDRNOTAVAIL; + memcpy(ndev->dev_addr, addr->sa_data, ndev->addr_len); + } writel(ndev->dev_addr[3] | (ndev->dev_addr[2] << 8) | (ndev->dev_addr[1] << 16) | (ndev->dev_addr[0] << 24), @@ -2000,6 +2001,8 @@ static int fec_enet_init(struct net_device *ndev) /* Get the Ethernet address */ fec_get_mac(ndev); + /* make sure MAC we just acquired is programmed into the hw */ + fec_set_mac_address(ndev, NULL); /* init the tx & rx ring size */ fep->tx_ring_size = TX_RING_SIZE;