[Maverick SRU][master][ti-omap4]: [PATCH] smsc95xx: generate random MAC address once, not every ifup
Leann Ogasawara
leann.ogasawara at canonical.com
Thu Nov 11 18:24:39 UTC 2010
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 at canonical.com>
> From: Bernard Blackham <bernard at 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 at largestprime.net>
> Signed-off-by: Ricardo Salveti de Araujo <ricardo.salveti at 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
>
More information about the kernel-team
mailing list