mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-12-08 23:03:46 +00:00
52 lines
1.6 KiB
Diff
52 lines
1.6 KiB
Diff
|
smsc95xx: generate random MAC address once, not every ifup
|
||
|
|
||
|
The smsc95xx driver currently generates a new random MAC address
|
||
|
every time the interface is brought up. This makes it impossible to
|
||
|
override using the standard `ifconfig hw ether` approach.
|
||
|
|
||
|
Past patches tried to make the MAC address a module parameter or
|
||
|
base it off the die ID, but it seems to me much simpler (and
|
||
|
hopefully less controversial) to stick with the current random
|
||
|
generation scheme, but allow the user to change the address.
|
||
|
|
||
|
This patch does exactly that - it moves the random address
|
||
|
generation from smsc95xx_reset() into smsc95xx_bind(), so that it is
|
||
|
done once on module load, not on every ifup. The user can then
|
||
|
override this using the standard mechanisms.
|
||
|
|
||
|
Applies against 2.6.35 and linux-2.6 head.
|
||
|
|
||
|
Upstream-Status: Backport [2.6.36]
|
||
|
|
||
|
Signed-off-by: Bernard Blackham <b-omap@largestprime.net>
|
||
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||
|
---
|
||
|
drivers/net/usb/smsc95xx.c | 4 ++--
|
||
|
1 files changed, 2 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
|
||
|
index 12a3c88..65cb1ab 100644
|
||
|
--- a/drivers/net/usb/smsc95xx.c
|
||
|
+++ b/drivers/net/usb/smsc95xx.c
|
||
|
@@ -805,8 +805,6 @@ static int smsc95xx_reset(struct usbnet *dev)
|
||
|
return ret;
|
||
|
}
|
||
|
|
||
|
- smsc95xx_init_mac_address(dev);
|
||
|
-
|
||
|
ret = smsc95xx_set_mac_address(dev);
|
||
|
if (ret < 0)
|
||
|
return ret;
|
||
|
@@ -1047,6 +1045,8 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf)
|
||
|
pdata->use_tx_csum = DEFAULT_TX_CSUM_ENABLE;
|
||
|
pdata->use_rx_csum = DEFAULT_RX_CSUM_ENABLE;
|
||
|
|
||
|
+ smsc95xx_init_mac_address(dev);
|
||
|
+
|
||
|
/* Init all registers */
|
||
|
ret = smsc95xx_reset(dev);
|
||
|
|
||
|
--
|
||
|
1.7.7.6
|
||
|
|