Skip to contentSkip to conversation

Log error in csum dev_queue_xmit error path

PATCH New Jon Mason 1 participant 1 message Dec 1, 2005

lore
Share & tools
lore

Jon Mason

author
#0 lore raw

PATCH 1/1 Log error in csum dev_queue_xmit error path

While working bug #143, it came to my attention that no verbose error is loged if the dom0 kernel mangles a packet and tries to checksum offload it.

This should let the user know what is going wrong (instead of silently dropping the packet).

# HG changeset patch
# User [email protected]
# Node ID 6e8be095dd8406da697b3956ba65ed724e55e50f
# Parent f5b119533cc825726c9ecaa3bd2650b38033d4d8
Log an error if dom0 dev_queue_xmit receives a packet to be checksummed that is not TCP/UDP. Since we can only offload TCP/UDP checksums, this error path should be entered. If this is the case, domU checksum offload needs to be diabled.

linux-2.6-xen-sparse/net/core/dev.c +5 -0
diff -r f5b119533cc8 -r 6e8be095dd84 linux-2.6-xen-sparse/net/core/dev.c
@@ -1283,6 +1283,11 @@
 			skb->csum = offsetof(struct udphdr, check);
 			break;
 		default:
+			if (net_ratelimit())
+				printk(KERN_ERR "Attempting to checksum a "
+				       "non-TCP/UDP packet, dropping a protocol"
+				       " %d packet", skb->nh.iph->protocol);
+			rc = -EPROTO;
 			goto out_kfree_skb;
 		}
 		if ((skb->h.raw + skb->csum + 2) > skb->tail)