summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Samanas <esamanas@xes-inc.com>2009-11-09 20:08:36 -0600
committerWolfgang Denk <wd@denx.de>2009-12-07 22:35:47 +0100
commitaabb8cb0818e285aeed0cfaf243635997e07554d (patch)
tree4bdd608e51b9d54d4b5597a7ec34fa7b0d4f10aa
parent224c90d1060bf1a83cbf33ca51d060b9d19e0294 (diff)
nfs: NfsTimeout() updates
- NfsTimeout() does not correctly update the NFS timeout value which results in NfsTimeout() only being called once in certain situations. This can result in the 'nfs' command hanging indefinetly. For example, the command: nfs 192.168.0.1:/home/user/file will not exit until ctrl-c is pressed if 192.168.0.1 does not have an NFS server running. This issue is resolved by reinitializting the NFS timeout value inside NfsTimeout() when a timeout occurs. - Make the 'nfs' command print the 'T' character when a timeout occurs. Previously there was no indication that timeouts were occuring. - Mimic the 'tftpboot' command and when a download fails print "Retry count exceeded; starting again", and restart the download taking the 'netretry' environment variable into account. Signed-off-by: Evan Samanas <esamanas@xes-inc.com> Signed-off-by: Peter Tyser <ptyser@xes-inc.com> Tested on TQM8xxL. Tested by: Wolfgang Denk <wd@denx.de> Tested on MPC8527DS. Tested by: Ed Swarthout <Ed.Swarthout@freescale.com>
-rw-r--r--net/nfs.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/net/nfs.c b/net/nfs.c
index c39f616d9b..4017c3e353 100644
--- a/net/nfs.c
+++ b/net/nfs.c
@@ -571,13 +571,14 @@ Interfaces of U-BOOT
static void
NfsTimeout (void)
{
- if ( NfsTimeoutCount++ < NFS_RETRY_COUNT ) {
+ if ( ++NfsTimeoutCount > NFS_RETRY_COUNT ) {
+ puts ("\nRetry count exceeded; starting again\n");
+ NetStartAgain ();
+ } else {
+ puts("T ");
+ NetSetTimeout (NFS_TIMEOUT, NfsTimeout);
NfsSend ();
- return;
}
- puts ("Timeout\n");
- NetState = NETLOOP_FAIL;
- return;
}
static void