aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/usb/smsc95xx.c
diff options
context:
space:
mode:
authorBernard Blackham <bernard@largestprime.net>2010-10-18 09:16:39 -0400
committerDavid S. Miller <davem@davemloft.net>2010-10-21 06:09:48 -0400
commitf4e8ab7cc4e819011ca6325e54383b3da7a5d130 (patch)
tree0a8587e0cafd2a436ff3b3fde7881048c9e4cf9a /drivers/net/usb/smsc95xx.c
parentfdb246f526e422b18b48d578085c01ab28ec2c33 (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. Signed-off-by: Bernard Blackham <b-omap@largestprime.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/usb/smsc95xx.c')
-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 12a3c88c5282..65cb1abfbe57 100644
--- a/drivers/net/usb/smsc95xx.c
+++ b/drivers/net/usb/smsc95xx.c
@@ -805,8 +805,6 @@ static int smsc95xx_reset(struct usbnet *dev)
805 return ret; 805 return ret;
806 } 806 }
807 807
808 smsc95xx_init_mac_address(dev);
809
810 ret = smsc95xx_set_mac_address(dev); 808 ret = smsc95xx_set_mac_address(dev);
811 if (ret < 0) 809 if (ret < 0)
812 return ret; 810 return ret;
@@ -1047,6 +1045,8 @@ static int smsc95xx_bind(struct usbnet *dev, struct usb_interface *intf)
1047 pdata->use_tx_csum = DEFAULT_TX_CSUM_ENABLE; 1045 pdata->use_tx_csum = DEFAULT_TX_CSUM_ENABLE;
1048 pdata->use_rx_csum = DEFAULT_RX_CSUM_ENABLE; 1046 pdata->use_rx_csum = DEFAULT_RX_CSUM_ENABLE;
1049 1047
1048 smsc95xx_init_mac_address(dev);
1049
1050 /* Init all registers */ 1050 /* Init all registers */
1051 ret = smsc95xx_reset(dev); 1051 ret = smsc95xx_reset(dev);
1052 1052