diff options
| author | Joe Hershberger <joe.hershberger@ni.com> | 2012-05-23 07:59:14 +0000 | 
|---|---|---|
| committer | Joe Hershberger <joe.hershberger@ni.com> | 2012-05-23 17:46:21 -0500 | 
| commit | 22f6e99d5b0c54758646334c1153737a5585bd57 (patch) | |
| tree | e70b3679ff62e93345fc0f7e3960d37582cea612 /net/net.c | |
| parent | adf5d93e441eb3eacd8c0430d6064b35d47ad2a5 (diff) | |
| download | olio-uboot-2014.01-22f6e99d5b0c54758646334c1153737a5585bd57.tar.xz olio-uboot-2014.01-22f6e99d5b0c54758646334c1153737a5585bd57.zip | |
net: Refactor to protect access to the NetState variable
Changes to NetState now go through an accessor function called
net_set_state()
Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'net/net.c')
| -rw-r--r-- | net/net.c | 21 | 
1 files changed, 12 insertions, 9 deletions
| @@ -149,7 +149,7 @@ uchar		NetEtherNullAddr[6];  void		(*push_packet)(void *, int len) = 0;  #endif  /* Network loop state */ -int		NetState; +enum net_loop_state net_state;  /* Tried all network devices */  int		NetRestartWrap;  /* Network loop restarted */ @@ -212,7 +212,7 @@ void net_auto_load(void)  			 * Just use BOOTP/RARP to configure system;  			 * Do not use TFTP to load the bootfile.  			 */ -			NetState = NETLOOP_SUCCESS; +			net_set_state(NETLOOP_SUCCESS);  			return;  		}  #if defined(CONFIG_CMD_NFS) @@ -290,7 +290,7 @@ int NetLoop(enum proto_t protocol)  restart:  	memcpy(NetOurEther, eth_get_dev()->enetaddr, 6); -	NetState = NETLOOP_CONTINUE; +	net_set_state(NETLOOP_CONTINUE);  	/*  	 *	Start the ball rolling with the given start function.  From @@ -399,7 +399,7 @@ restart:  	/*  	 *	Main packet reception loop.  Loop receiving packets until -	 *	someone sets `NetState' to a state that terminates. +	 *	someone sets `net_state' to a state that terminates.  	 */  	for (;;) {  		WATCHDOG_RESET(); @@ -451,7 +451,7 @@ restart:  		} -		switch (NetState) { +		switch (net_state) {  		case NETLOOP_RESTART:  			NetRestarted = 1; @@ -475,6 +475,9 @@ restart:  		case NETLOOP_FAIL:  			goto done; + +		case NETLOOP_CONTINUE: +			continue;  		}  	} @@ -492,7 +495,7 @@ done:  static void  startAgainTimeout(void)  { -	NetState = NETLOOP_RESTART; +	net_set_state(NETLOOP_RESTART);  }  static void @@ -523,7 +526,7 @@ void NetStartAgain(void)  	if ((!retry_forever) && (NetTryCount >= retrycnt)) {  		eth_halt(); -		NetState = NETLOOP_FAIL; +		net_set_state(NETLOOP_FAIL);  		return;  	} @@ -540,10 +543,10 @@ void NetStartAgain(void)  			NetSetTimeout(10000UL, startAgainTimeout);  			NetSetHandler(startAgainHandler);  		} else { -			NetState = NETLOOP_FAIL; +			net_set_state(NETLOOP_FAIL);  		}  	} else { -		NetState = NETLOOP_RESTART; +		net_set_state(NETLOOP_RESTART);  	}  } |