Index: net/net.c =================================================================== RCS file: /cvsroot/u-boot/u-boot/net/net.c,v retrieving revision 1.19 diff -a -u -r1.19 net.c --- net/net.c 12 Jan 2005 00:15:18 -0000 1.19 +++ net/net.c 11 Mar 2005 16:22:26 -0000 @@ -1493,10 +1493,12 @@ NetCksum(uchar * ptr, int len) { ulong xsum; + ushort *up; + up = (ushort *)ptr; xsum = 0; while (len-- > 0) - xsum += *((ushort *)ptr)++; + xsum += *up++; xsum = (xsum & 0xffff) + (xsum >> 16); xsum = (xsum & 0xffff) + (xsum >> 16); return (xsum & 0xffff); Index: net/tftp.c =================================================================== RCS file: /cvsroot/u-boot/u-boot/net/tftp.c,v retrieving revision 1.9 diff -a -u -r1.9 tftp.c --- net/tftp.c 15 Apr 2004 21:48:55 -0000 1.9 +++ net/tftp.c 11 Mar 2005 16:22:27 -0000 @@ -105,6 +105,7 @@ { volatile uchar * pkt; volatile uchar * xp; + volatile ushort * up; int len = 0; /* @@ -117,7 +118,9 @@ case STATE_RRQ: xp = pkt; - *((ushort *)pkt)++ = htons(TFTP_RRQ); + up = (ushort *)pkt; + *up++ = htons(TFTP_RRQ); + pkt = (uchar *)up; strcpy ((char *)pkt, tftp_filename); pkt += strlen(tftp_filename) + 1; strcpy ((char *)pkt, "octet"); @@ -135,15 +138,19 @@ case STATE_DATA: case STATE_OACK: xp = pkt; - *((ushort *)pkt)++ = htons(TFTP_ACK); - *((ushort *)pkt)++ = htons(TftpBlock); + up = (ushort *)pkt; + *up++ = htons(TFTP_ACK); + *up++ = htons(TftpBlock); + pkt = (uchar *)up; len = pkt - xp; break; case STATE_TOO_LARGE: xp = pkt; - *((ushort *)pkt)++ = htons(TFTP_ERROR); - *((ushort *)pkt)++ = htons(3); + up = (ushort *)pkt; + *up++ = htons(TFTP_ERROR); + *up++ = htons(3); + pkt = (uchar *)up; strcpy ((char *)pkt, "File too large"); pkt += 14 /*strlen("File too large")*/ + 1; len = pkt - xp; @@ -151,8 +158,10 @@ case STATE_BAD_MAGIC: xp = pkt; - *((ushort *)pkt)++ = htons(TFTP_ERROR); - *((ushort *)pkt)++ = htons(2); + up = (ushort *)pkt; + *up++ = htons(TFTP_ERROR); + *up++ = htons(2); + pkt = (uchar *)up; strcpy ((char *)pkt, "File has bad magic"); pkt += 18 /*strlen("File has bad magic")*/ + 1; len = pkt - xp; @@ -166,7 +175,7 @@ static void TftpHandler (uchar * pkt, unsigned dest, unsigned src, unsigned len) { - ushort proto; + ushort proto, *up; if (dest != TftpOurPort) { return; @@ -180,7 +189,9 @@ } len -= 2; /* warning: don't use increment (++) in ntohs() macros!! */ - proto = *((ushort *)pkt)++; + up = (ushort *)pkt; + proto = *up++; + pkt = (uchar *)up; switch (ntohs(proto)) { case TFTP_RRQ: