mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 07:22:33 +00:00
011f2c26f1
As usual these patches were extracted and rebased from the raspberry pi repo: https://github.com/raspberrypi/linux/tree/rpi-4.4.y Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
40 lines
1.7 KiB
Diff
40 lines
1.7 KiB
Diff
From 0f77e8585ca73daddcc386ec45c9e5d5649de0fa Mon Sep 17 00:00:00 2001
|
|
From: Craig Roberts <cjr@craigroberts.net>
|
|
Date: Tue, 16 Feb 2016 10:03:42 +0000
|
|
Subject: [PATCH] Updated smsc95xx driver to check for a valid MAC address in
|
|
eeprom before using smsc95xx.macaddr parameter passed on command line.
|
|
|
|
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,
|
|
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
|
|
meaning they don't end up with the same MAC address as the built-in RPi adaptor.
|
|
---
|
|
drivers/net/usb/smsc95xx.c | 10 +++++-----
|
|
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
|
|
--- a/drivers/net/usb/smsc95xx.c
|
|
+++ b/drivers/net/usb/smsc95xx.c
|
|
@@ -817,10 +817,6 @@ static int smsc95xx_is_macaddr_param(str
|
|
|
|
static void smsc95xx_init_mac_address(struct usbnet *dev)
|
|
{
|
|
- /* Check module parameters */
|
|
- if (smsc95xx_is_macaddr_param(dev, dev->net->dev_addr))
|
|
- return;
|
|
-
|
|
/* try reading mac address from EEPROM */
|
|
if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
|
|
dev->net->dev_addr) == 0) {
|
|
@@ -831,7 +827,11 @@ static void smsc95xx_init_mac_address(st
|
|
}
|
|
}
|
|
|
|
- /* no eeprom, or eeprom values are invalid. generate random MAC */
|
|
+ /* Check module parameters */
|
|
+ if (smsc95xx_is_macaddr_param(dev, dev->net->dev_addr))
|
|
+ return;
|
|
+
|
|
+ /* no eeprom, or eeprom values are invalid, and no module parameter specified to set MAC. Generate random MAC */
|
|
eth_hw_addr_random(dev->net);
|
|
netif_dbg(dev, ifup, dev->net, "MAC address set to eth_random_addr\n");
|
|
}
|