brcm2708: update linux 4.4 patches to latest version
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.4 / 0147-Updated-smsc95xx-driver-to-check-for-a-valid-MAC-add.patch
1 From ef351705676a8a3906bfbc3696e7d44bcc3a320b Mon Sep 17 00:00:00 2001
2 From: Craig Roberts <cjr@craigroberts.net>
3 Date: Tue, 16 Feb 2016 10:03:42 +0000
4 Subject: [PATCH] Updated smsc95xx driver to check for a valid MAC address in
5 eeprom before using smsc95xx.macaddr parameter passed on command line.
6
7 The built-in RPi adaptor will still get a MAC address based on the parameter passed on the command line as the RPi hardware does not have an eeprom,
8 however usb->ethernet adaptors using the same driver should have an eeprom with MAC address as part of their hardware and therefore will use this
9 meaning they don't end up with the same MAC address as the built-in RPi adaptor.
10 ---
11 drivers/net/usb/smsc95xx.c | 10 +++++-----
12 1 file changed, 5 insertions(+), 5 deletions(-)
13
14 --- a/drivers/net/usb/smsc95xx.c
15 +++ b/drivers/net/usb/smsc95xx.c
16 @@ -817,10 +817,6 @@ static int smsc95xx_is_macaddr_param(str
17
18 static void smsc95xx_init_mac_address(struct usbnet *dev)
19 {
20 - /* Check module parameters */
21 - if (smsc95xx_is_macaddr_param(dev, dev->net->dev_addr))
22 - return;
23 -
24 /* try reading mac address from EEPROM */
25 if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
26 dev->net->dev_addr) == 0) {
27 @@ -831,7 +827,11 @@ static void smsc95xx_init_mac_address(st
28 }
29 }
30
31 - /* no eeprom, or eeprom values are invalid. generate random MAC */
32 + /* Check module parameters */
33 + if (smsc95xx_is_macaddr_param(dev, dev->net->dev_addr))
34 + return;
35 +
36 + /* no eeprom, or eeprom values are invalid, and no module parameter specified to set MAC. Generate random MAC */
37 eth_hw_addr_random(dev->net);
38 netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n");
39 }