Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 290213
b: refs/heads/master
c: 5055d2f
h: refs/heads/master
i:
  290211: 4432e08
v: v3
  • Loading branch information
Danny Kukawka authored and David S. Miller committed Feb 20, 2012
1 parent c0d8f49 commit a487492
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 8 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: fa63c6da22b4a6ea6e7d04e3dc9178dd72304903
refs/heads/master: 5055d2f236e1495d68c468eeb684fd5789673f1d
15 changes: 9 additions & 6 deletions trunk/drivers/net/ethernet/adi/bfin_mac.c
Original file line number Diff line number Diff line change
Expand Up @@ -621,6 +621,7 @@ static int bfin_mac_set_mac_address(struct net_device *dev, void *p)
if (netif_running(dev))
return -EBUSY;
memcpy(dev->dev_addr, addr->sa_data, dev->addr_len);
dev->addr_assign_type &= ~NET_ADDR_RANDOM;
setup_mac_addr(dev->dev_addr);
return 0;
}
Expand Down Expand Up @@ -1494,12 +1495,14 @@ static int __devinit bfin_mac_probe(struct platform_device *pdev)
* Grab the MAC from the board somehow
* this is done in the arch/blackfin/mach-bfxxx/boards/eth_mac.c
*/
if (!is_valid_ether_addr(ndev->dev_addr))
bfin_get_ether_addr(ndev->dev_addr);

/* If still not valid, get a random one */
if (!is_valid_ether_addr(ndev->dev_addr))
random_ether_addr(ndev->dev_addr);
if (!is_valid_ether_addr(ndev->dev_addr)) {
if (bfin_get_ether_addr(ndev->dev_addr) ||
!is_valid_ether_addr(ndev->dev_addr)) {
/* Still not valid, get a random one */
netdev_warn(ndev, "Setting Ethernet MAC to a random one\n");
eth_hw_addr_random(ndev);
}
}

setup_mac_addr(ndev->dev_addr);

Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/net/ethernet/adi/bfin_mac.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,6 @@ struct bfin_mac_local {
#endif
};

extern void bfin_get_ether_addr(char *addr);
extern int bfin_get_ether_addr(char *addr);

#endif

0 comments on commit a487492

Please sign in to comment.