From: Bin Meng Date: Thu, 8 Oct 2015 04:45:42 +0000 (-0700) Subject: net: eth: Clear MAC address in eth_pre_remove() X-Git-Tag: v2016.01-rc1~154^2~2 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=a16edabe7f744b2d7a97bba4d4bc95b6894fd592;p=oweals%2Fu-boot.git net: eth: Clear MAC address in eth_pre_remove() platdata->enetaddr was assigned to a value in dev_probe() last time. If we don't clear it, for dev_probe() at the second time, dm eth will end up treating it as a MAC address from ROM no matter where it came from originally (maybe env, ROM, or even random). Fix this by clearing platdata->enetaddr when removing an Ethernet device. Signed-off-by: Bin Meng Acked-by: Joe Hershberger --- diff --git a/net/eth.c b/net/eth.c index b978aae101..c661775d1c 100644 --- a/net/eth.c +++ b/net/eth.c @@ -575,8 +575,13 @@ static int eth_post_probe(struct udevice *dev) static int eth_pre_remove(struct udevice *dev) { + struct eth_pdata *pdata = dev->platdata; + eth_get_ops(dev)->stop(dev); + /* clear the MAC address */ + memset(pdata->enetaddr, 0, 6); + return 0; }