summaryrefslogtreecommitdiff
path: root/drivers/net
diff options
context:
space:
mode:
authorBernard Blackham <bernard@largestprime.net>2010-10-18 13:16:39 (GMT)
committerDavid S. Miller <davem@davemloft.net>2010-10-21 10:09:48 (GMT)
commitf4e8ab7cc4e819011ca6325e54383b3da7a5d130 (patch)
tree0a8587e0cafd2a436ff3b3fde7881048c9e4cf9a /drivers/net
parentfdb246f526e422b18b48d578085c01ab28ec2c33 (diff)
downloadlinux-fsl-qoriq-f4e8ab7cc4e819011ca6325e54383b3da7a5d130.tar.xz
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. Signed-off-by: Bernard Blackham <b-omap@largestprime.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/usb/smsc95xx.c4
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);