From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jon Mason Subject: [PATCH] Log error in csum dev_queue_xmit error path Date: Thu, 1 Dec 2005 13:40:04 -0600 Message-ID: <20051201194003.GC31301@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org 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). Signed-off-by: Jon Mason # HG changeset patch # User root@opteron.ltc.austin.ibm.com # 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. diff -r f5b119533cc8 -r 6e8be095dd84 linux-2.6-xen-sparse/net/core/dev.c --- a/linux-2.6-xen-sparse/net/core/dev.c Thu Dec 1 14:22:22 2005 +++ b/linux-2.6-xen-sparse/net/core/dev.c Thu Dec 1 19:29:00 2005 @@ -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)