[U-Boot] [PATCH] net: Make sure the ethaddr is updated in net_init()

Joe Hershberger joe.hershberger at ni.com
Tue Jul 24 01:11:16 CEST 2012


NetConsole may call NetSendUDPPacket before NetLoop is called.  This
will cause the source MAC address (NetOurEther) to be wrong.  Instead
of only changing it in NetLoop, move it to NetLoopInit so that it is
also updated when net_init() is called (especially by nc_start()).

Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>
Reported-by: Michael Walle <michael at walle.cc>
---
 net/net.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/net/net.c b/net/net.c
index 9de7d92..e8ff066 100644
--- a/net/net.c
+++ b/net/net.c
@@ -256,6 +256,7 @@ static void NetInitLoop(void)
 #endif
 		env_changed_id = env_id;
 	}
+	memcpy(NetOurEther, eth_get_dev()->enetaddr, 6);
 
 	return;
 }
@@ -322,8 +323,6 @@ int NetLoop(enum proto_t protocol)
 	}
 
 restart:
-	memcpy(NetOurEther, eth_get_dev()->enetaddr, 6);
-
 	net_set_state(NETLOOP_CONTINUE);
 
 	/*
-- 
1.6.0.2



More information about the U-Boot mailing list