diff options
| -rw-r--r-- | arch/um/drivers/net_kern.c | 17 | 
1 files changed, 3 insertions, 14 deletions
diff --git a/arch/um/drivers/net_kern.c b/arch/um/drivers/net_kern.c index 2ab233ba32c..47d0c37897d 100644 --- a/arch/um/drivers/net_kern.c +++ b/arch/um/drivers/net_kern.c @@ -255,18 +255,6 @@ static void uml_net_tx_timeout(struct net_device *dev)  	netif_wake_queue(dev);  } -static int uml_net_set_mac(struct net_device *dev, void *addr) -{ -	struct uml_net_private *lp = netdev_priv(dev); -	struct sockaddr *hwaddr = addr; - -	spin_lock_irq(&lp->lock); -	eth_mac_addr(dev, hwaddr->sa_data); -	spin_unlock_irq(&lp->lock); - -	return 0; -} -  static int uml_net_change_mtu(struct net_device *dev, int new_mtu)  {  	dev->mtu = new_mtu; @@ -373,7 +361,7 @@ static const struct net_device_ops uml_netdev_ops = {  	.ndo_start_xmit 	= uml_net_start_xmit,  	.ndo_set_multicast_list = uml_net_set_multicast_list,  	.ndo_tx_timeout 	= uml_net_tx_timeout, -	.ndo_set_mac_address	= uml_net_set_mac, +	.ndo_set_mac_address	= eth_mac_addr,  	.ndo_change_mtu 	= uml_net_change_mtu,  	.ndo_validate_addr	= eth_validate_addr,  }; @@ -472,7 +460,8 @@ static void eth_configure(int n, void *init, char *mac,  	    ((*transport->user->init)(&lp->user, dev) != 0))  		goto out_unregister; -	eth_mac_addr(dev, device->mac); +	/* don't use eth_mac_addr, it will not work here */ +	memcpy(dev->dev_addr, device->mac, ETH_ALEN);  	dev->mtu = transport->user->mtu;  	dev->netdev_ops = ¨_netdev_ops;  	dev->ethtool_ops = ¨_net_ethtool_ops;  |