summaryrefslogtreecommitdiffstats
path: root/net/net.c
diff options
context:
space:
mode:
authorJoe Hershberger <joe.hershberger@ni.com>2012-05-23 07:59:14 +0000
committerJoe Hershberger <joe.hershberger@ni.com>2012-05-23 17:46:21 -0500
commit22f6e99d5b0c54758646334c1153737a5585bd57 (patch)
treee70b3679ff62e93345fc0f7e3960d37582cea612 /net/net.c
parentadf5d93e441eb3eacd8c0430d6064b35d47ad2a5 (diff)
downloadblackbird-obmc-uboot-22f6e99d5b0c54758646334c1153737a5585bd57.tar.gz
blackbird-obmc-uboot-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.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/net/net.c b/net/net.c
index e5fbda3e7f..60be9782c9 100644
--- a/net/net.c
+++ b/net/net.c
@@ -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);
}
}
OpenPOWER on IntegriCloud