Patchwork [Maverick,SRU,master,ti-omap4] : [PATCH] smsc95xx: generate random MAC address once, not every ifup

login
register
mail settings
Submitter Ricardo Salveti de Araujo
Date Nov. 11, 2010, 2:24 p.m.
Message ID <20101111142435.GA4950@evatp>
Download mbox | patch
Permalink /patch/70809/
State Accepted
Delegated to: Tim Gardner
Headers show

Comments

Ricardo Salveti de Araujo - Nov. 11, 2010, 2:24 p.m.
SRU Justification:

Impact: The smsc95xx driver generates a new random MAC address on every
ifdown/up instead of only one during driver's init, and doesn't let the user to
set up the mac address using known methods like ifconfig usb0 hw ether <mac>.

Fix: Just move the init_mac_address function to bind instead of reset.

Testcase: The interface should keep the same generated mac address even when
giving ifdown/up, and the user should be able to set up the mac address using
'ifconfig usb0 hw ether <mac>.

Patch is already upstream as f4e8ab7, and is tested already with a compiled
kernel deb with the fix included.  

BugLink: https://bugs.launchpad.net/bugs/673504 and https://bugs.launchpad.net/bugs/673509

From: Bernard Blackham <bernard@largestprime.net>
Date: Tue, 19 Oct 2010 10:16:39 +1100
Subject: [PATCH] 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: Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>
---
 drivers/net/usb/smsc95xx.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Leann Ogasawara - Nov. 11, 2010, 6:24 p.m.
On Thu, 2010-11-11 at 12:24 -0200, Ricardo Salveti de Araujo wrote:
> SRU Justification:
> 
> Impact: The smsc95xx driver generates a new random MAC address on every
> ifdown/up instead of only one during driver's init, and doesn't let the user to
> set up the mac address using known methods like ifconfig usb0 hw ether <mac>.
> 
> Fix: Just move the init_mac_address function to bind instead of reset.
> 
> Testcase: The interface should keep the same generated mac address even when
> giving ifdown/up, and the user should be able to set up the mac address using
> 'ifconfig usb0 hw ether <mac>.
> 
> Patch is already upstream as f4e8ab7, and is tested already with a compiled
> kernel deb with the fix included.  
> 
> BugLink: https://bugs.launchpad.net/bugs/673504 and https://bugs.launchpad.net/bugs/673509

Looks reasonable to me with positive test confirmation in the bug
reports.

Acked-by: Leann Ogasawara <leann.ogasawara@canonical.com>

> From: Bernard Blackham <bernard@largestprime.net>
> Date: Tue, 19 Oct 2010 10:16:39 +1100
> Subject: [PATCH] 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: Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>
> ---
>  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.1
>
Stefan Bader - Nov. 12, 2010, 8:38 a.m.
On 11/11/2010 03:24 PM, Ricardo Salveti de Araujo wrote:
> SRU Justification:
> 
> Impact: The smsc95xx driver generates a new random MAC address on every
> ifdown/up instead of only one during driver's init, and doesn't let the user to
> set up the mac address using known methods like ifconfig usb0 hw ether <mac>.
> 
> Fix: Just move the init_mac_address function to bind instead of reset.
> 
> Testcase: The interface should keep the same generated mac address even when
> giving ifdown/up, and the user should be able to set up the mac address using
> 'ifconfig usb0 hw ether <mac>.
> 
> Patch is already upstream as f4e8ab7, and is tested already with a compiled
> kernel deb with the fix included.  
> 
> BugLink: https://bugs.launchpad.net/bugs/673504 and https://bugs.launchpad.net/bugs/673509
> 
Just minor formatting issues. The BugLink should be two lines and go into the
patch itself.

> From: Bernard Blackham <bernard@largestprime.net>
> Date: Tue, 19 Oct 2010 10:16:39 +1100
> Subject: [PATCH] smsc95xx: generate random MAC address once, not every ifup
> 
BugLink: https://bugs.launchpad.net/bugs/673504
BugLink: https://bugs.launchpad.net/bugs/673509

> 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: Ricardo Salveti de Araujo <ricardo.salveti@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>

> ---
>  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);
>
Tim Gardner - Nov. 17, 2010, 1:51 a.m.
On 11/11/2010 07:24 AM, Ricardo Salveti de Araujo wrote:
> SRU Justification:
>
> Impact: The smsc95xx driver generates a new random MAC address on every
> ifdown/up instead of only one during driver's init, and doesn't let the user to
> set up the mac address using known methods like ifconfig usb0 hw ether<mac>.
>
> Fix: Just move the init_mac_address function to bind instead of reset.
>
> Testcase: The interface should keep the same generated mac address even when
> giving ifdown/up, and the user should be able to set up the mac address using
> 'ifconfig usb0 hw ether<mac>.
>
> Patch is already upstream as f4e8ab7, and is tested already with a compiled
> kernel deb with the fix included.

applied, packaged, and uploaded
Ricardo Salveti de Araujo - Nov. 17, 2010, 2:15 a.m.
On Tue, Nov 16, 2010 at 11:51 PM, Tim Gardner <tim.gardner@canonical.com> wrote:
> On 11/11/2010 07:24 AM, Ricardo Salveti de Araujo wrote:
>>
>> SRU Justification:
>>
>> Impact: The smsc95xx driver generates a new random MAC address on every
>> ifdown/up instead of only one during driver's init, and doesn't let the
>> user to
>> set up the mac address using known methods like ifconfig usb0 hw
>> ether<mac>.
>>
>> Fix: Just move the init_mac_address function to bind instead of reset.
>>
>> Testcase: The interface should keep the same generated mac address even
>> when
>> giving ifdown/up, and the user should be able to set up the mac address
>> using
>> 'ifconfig usb0 hw ether<mac>.
>>
>> Patch is already upstream as f4e8ab7, and is tested already with a
>> compiled
>> kernel deb with the fix included.
>
> applied, packaged, and uploaded

Did you also apply it at the master branch? You closed the xM bug as a
duplicate of the Omap 4 one, but I don't see this commit at the master
branch yet.

Thanks,
Brad Figg - Nov. 17, 2010, 2:16 a.m.
On 11/16/2010 06:15 PM, Ricardo Salveti wrote:
> On Tue, Nov 16, 2010 at 11:51 PM, Tim Gardner<tim.gardner@canonical.com>  wrote:
>> On 11/11/2010 07:24 AM, Ricardo Salveti de Araujo wrote:
>>>
>>> SRU Justification:
>>>
>>> Impact: The smsc95xx driver generates a new random MAC address on every
>>> ifdown/up instead of only one during driver's init, and doesn't let the
>>> user to
>>> set up the mac address using known methods like ifconfig usb0 hw
>>> ether<mac>.
>>>
>>> Fix: Just move the init_mac_address function to bind instead of reset.
>>>
>>> Testcase: The interface should keep the same generated mac address even
>>> when
>>> giving ifdown/up, and the user should be able to set up the mac address
>>> using
>>> 'ifconfig usb0 hw ether<mac>.
>>>
>>> Patch is already upstream as f4e8ab7, and is tested already with a
>>> compiled
>>> kernel deb with the fix included.
>>
>> applied, packaged, and uploaded
>
> Did you also apply it at the master branch? You closed the xM bug as a
> duplicate of the Omap 4 one, but I don't see this commit at the master
> branch yet.
>
> Thanks,

I'll take care of that.

Brad
Tim Gardner - Nov. 17, 2010, 2:25 a.m.
On 11/16/2010 07:16 PM, Brad Figg wrote:
> On 11/16/2010 06:15 PM, Ricardo Salveti wrote:
>> On Tue, Nov 16, 2010 at 11:51 PM, Tim Gardner<tim.gardner@canonical.com>   wrote:
>>> On 11/11/2010 07:24 AM, Ricardo Salveti de Araujo wrote:
>>>>
>>>> SRU Justification:
>>>>
>>>> Impact: The smsc95xx driver generates a new random MAC address on every
>>>> ifdown/up instead of only one during driver's init, and doesn't let the
>>>> user to
>>>> set up the mac address using known methods like ifconfig usb0 hw
>>>> ether<mac>.
>>>>
>>>> Fix: Just move the init_mac_address function to bind instead of reset.
>>>>
>>>> Testcase: The interface should keep the same generated mac address even
>>>> when
>>>> giving ifdown/up, and the user should be able to set up the mac address
>>>> using
>>>> 'ifconfig usb0 hw ether<mac>.
>>>>
>>>> Patch is already upstream as f4e8ab7, and is tested already with a
>>>> compiled
>>>> kernel deb with the fix included.
>>>
>>> applied, packaged, and uploaded
>>
>> Did you also apply it at the master branch? You closed the xM bug as a
>> duplicate of the Omap 4 one, but I don't see this commit at the master
>> branch yet.
>>
>> Thanks,
>
> I'll take care of that.
>
> Brad

Oops, good catch.

rtg
Brad Figg - Nov. 17, 2010, 5:35 p.m.
On 11/11/2010 06:24 AM, Ricardo Salveti de Araujo wrote:
> SRU Justification:
>
> Impact: The smsc95xx driver generates a new random MAC address on every
> ifdown/up instead of only one during driver's init, and doesn't let the user to
> set up the mac address using known methods like ifconfig usb0 hw ether<mac>.
>
> Fix: Just move the init_mac_address function to bind instead of reset.
>
> Testcase: The interface should keep the same generated mac address even when
> giving ifdown/up, and the user should be able to set up the mac address using
> 'ifconfig usb0 hw ether<mac>.
>
> Patch is already upstream as f4e8ab7, and is tested already with a compiled
> kernel deb with the fix included.
>
> BugLink: https://bugs.launchpad.net/bugs/673504 and https://bugs.launchpad.net/bugs/673509
>
> From: Bernard Blackham<bernard@largestprime.net>
> Date: Tue, 19 Oct 2010 10:16:39 +1100
> Subject: [PATCH] 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: Ricardo Salveti de Araujo<ricardo.salveti@canonical.com>
> ---
>   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);
>

Applied to Maverick master branch.

Patch

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);