diff options
Diffstat (limited to 'net/nfs.c')
-rw-r--r-- | net/nfs.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -66,6 +66,7 @@ static char nfs_path_buff[2048]; 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 @@ store_block (uchar * src, unsigned offset, unsigned len) } } 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 @@ nfs_read_reply (uchar *pkt, unsigned len) 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 @@ NfsHandler (uchar *pkt, unsigned dest, unsigned src, unsigned len) puts ("*** ERROR: Cannot umount\n"); NetState = NETLOOP_FAIL; } else { + puts ("\ndone\n"); NetState = NETLOOP_SUCCESS; } break; @@ -658,9 +661,6 @@ NfsHandler (uchar *pkt, unsigned dest, unsigned src, unsigned len) 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 (); } |