From: Jim Lin Date: Fri, 17 May 2013 09:41:03 +0000 (+0800) Subject: NET: Fix system hanging if NET device is not installed X-Git-Tag: v2013.07-rc2~94 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=7315cfd9e1922ee1c3c5f016e5a3b16199122172;p=u-boot NET: Fix system hanging if NET device is not installed If we try to boot from NET device, NetInitLoop in net.c will be invoked. If NET device is not installed, eth_get_dev() function will return eth_current value, which is NULL. When NetInitLoop is called, "eth_get_dev->enetaddr" will access restricted memory area and therefore cause hanging. This issue is found on Tegra30 Cardhu platform after adding CONFIG_CMD_NET and CONFIG_CMD_DHCP in config header file. Signed-off-by: Jim Lin Tested-by: Stephen Warren --- diff --git a/net/net.c b/net/net.c index df94789de9..7663b9cd6c 100644 --- a/net/net.c +++ b/net/net.c @@ -271,7 +271,8 @@ static void NetInitLoop(void) #endif env_changed_id = env_id; } - memcpy(NetOurEther, eth_get_dev()->enetaddr, 6); + if (eth_get_dev()) + memcpy(NetOurEther, eth_get_dev()->enetaddr, 6); return; }