|
@@ -1223,12 +1223,16 @@ static netdev_tx_t bgmac_start_xmit(struct sk_buff *skb,
|
|
|
static int bgmac_set_mac_address(struct net_device *net_dev, void *addr)
|
|
|
{
|
|
|
struct bgmac *bgmac = netdev_priv(net_dev);
|
|
|
+ struct sockaddr *sa = addr;
|
|
|
int ret;
|
|
|
|
|
|
ret = eth_prepare_mac_addr_change(net_dev, addr);
|
|
|
if (ret < 0)
|
|
|
return ret;
|
|
|
- bgmac_write_mac_address(bgmac, (u8 *)addr);
|
|
|
+
|
|
|
+ ether_addr_copy(net_dev->dev_addr, sa->sa_data);
|
|
|
+ bgmac_write_mac_address(bgmac, net_dev->dev_addr);
|
|
|
+
|
|
|
eth_commit_mac_addr_change(net_dev, addr);
|
|
|
return 0;
|
|
|
}
|