* Patch by Masami Komiya, 24 Feb 2004:
Update NetBootFileXferSize in NFS code
* Patch by Scott McNutt, 24 Feb 2004:
fix packet length in NFS code
diff --git a/net/nfs.c b/net/nfs.c
index 6f4a06a..069f072 100644
--- a/net/nfs.c
+++ b/net/nfs.c
@@ -66,6 +66,7 @@
static __inline__ void
store_block (uchar * src, unsigned offset, unsigned len)
{
+ ulong newsize = offset + len;
#ifdef CFG_DIRECT_FLASH_NFS
int i, rc = 0;
@@ -86,10 +87,12 @@
}
} else
#endif /* CFG_DIRECT_FLASH_NFS */
-
{
(void)memcpy ((void *)(load_addr + offset), src, len);
}
+
+ if (NetBootFileXferSize < (offset+len))
+ NetBootFileXferSize = newsize;
}
static char*
@@ -539,8 +542,7 @@
printf ("%s\n", __FUNCTION__);
#endif
- rlen = (uchar *)&(rpc_pkt.u.reply.data[19]) - (uchar *)&(rpc_pkt.u.reply.id);
- memcpy ((uchar *)&rpc_pkt, pkt, rlen);
+ memcpy ((uchar *)&rpc_pkt, pkt, len);
if (rpc_pkt.u.reply.rstatus ||
rpc_pkt.u.reply.verifier ||
@@ -613,6 +615,7 @@
puts ("*** ERROR: Cannot umount\n");
NetState = NETLOOP_FAIL;
} else {
+ puts ("\ndone\n");
NetState = NETLOOP_SUCCESS;
}
break;
@@ -658,9 +661,6 @@
NfsState = STATE_READLINK_REQ;
NfsSend ();
} else {
- puts ("\ndone\n");
- printf ("Bytes transferred = %d (%x hex)\n",
- nfs_offset, nfs_offset);
NfsState = STATE_UMOUNT_REQ;
NfsSend ();
}