浏览代码

Get rid of annoying/superfluous bad-checksum warning message

U-boot can complain a lot about 'checksum bad' when it is attached to the network.
It is annoying for ordinary users who start to doubt the network connection
in general when they see messages like this.

This is caused by the routine NetCksumOk() which cannot handle IP-headers longer
than 20 bytes. Those packages can be ignored anyway by U-boot, so we trash them
now before checking the checksum.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
Signed-off-by: Ben Warren <biggerbadderben@gmail.com>
Remy Bohmer 17 年之前
父节点
当前提交
6b52cfe16c
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      net/net.c

+ 4 - 0
net/net.c

@@ -1407,6 +1407,10 @@ NetReceive(volatile uchar * inpkt, int len)
 		if (ip->ip_off & htons(0x1fff)) { /* Can't deal w/ fragments */
 			return;
 		}
+		/* can't deal with headers > 20 bytes */
+		if ((ip->ip_hl_v & 0x0f) > 0x05) {
+			return;
+		}
 		if (!NetCksumOk((uchar *)ip, IP_HDR_SIZE_NO_UDP / 2)) {
 			puts ("checksum bad\n");
 			return;