From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753618Ab2A3Qit (ORCPT ); Mon, 30 Jan 2012 11:38:49 -0500 Received: from mail.vyatta.com ([76.74.103.46]:34375 "EHLO mail.vyatta.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753272Ab2A3Qir (ORCPT ); Mon, 30 Jan 2012 11:38:47 -0500 Date: Mon, 30 Jan 2012 08:38:43 -0800 From: Stephen Hemminger To: Konrad Rzeszutek Wilk Cc: netdev@vger.kernel.org, davem@davemloft.net, linux-kernel@vger.kernel.org Subject: Re: Regression in skge that started around acb42a3 (so past v3.3-rc1) Message-ID: <20120130083843.160ffe5e@nehalam.linuxnetplumber.net> In-Reply-To: <20120130155816.GA1400@phenom.dumpdata.com> References: <20120130155816.GA1400@phenom.dumpdata.com> Organization: Vyatta X-Mailer: Claws Mail 3.8.0 (GTK+ 2.24.8; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 30 Jan 2012 10:58:16 -0500 Konrad Rzeszutek Wilk wrote: > I hadn't done any git bisection yet, but with acb42a3 I started getting this: > > (and only on i686 - x86_64 does not show these): > > (This is with Xen, the other one is without) > [ 28.602121] eth2: no IPv6 routers present > [ 70.457712] eth2: hw csum failure. > [ 70.458695] Pid: 0, comm: swapper/0 Not tainted 3.3.0-rc1-00287-gacb42a3 #1 > [ 70. > [ 70.458695] [] __skb_checksum_complete+0xb/0x10 > [ 70.458695] [] nf_ip_checksum+0x60/0x120 > [ 70.458695] [] udp_error+0xbb/0x1f0 > [ 70.458695] [] ? check_events+0x8/0xc > [ 70.458695] [] ? xen_restore_fl_direct_reloc+0x4/0x4 > [ 70.458695] [] ? put_cpu_partial+0x9e/0xb0 > [ 70.458695] [] ? udp_pkt_to_tuple+0x60/0x60 > [ 70.458695] [] nf_conntrack_in+0xc6/0x5c0 > [ 70.458695] [] ? __udp4_lib_rcv+0x428/0x630 > [ 70.458695] [] ? kfree+0xf0/0x120 > [ 70.458695] [] ? skb_release_data+0x90/0xb0 > [ 70.458695] [] ? skb_release_data+0x90/0xb0 > [ 70.458695] [] ? __kfree_skb+0x38/0x90 > [ 70.458695] [] ? inet_del_protocol+0x30/0x30 > [ 70.458695] [] ipv4_conntrack_in+0x1e/0x30 > [ 70.458695] [] nf_iterate+0x63/0x90 > [ 70.458695] [] ? inet_del_protocol+0x30/0x30 > [ 70.458695] [] nf_hook_slow+0x62/0x140 > [ 70.458695] [] ? inet_del_protocol+0x30/0x30 > [ 70.458695] [] ip_rcv+0x235/0x310 > [ 70.458695] [] ? inet_del_protocol+0x30/0x30 > [ 70.458695] [] __netif_receive_skb+0x1d6/0x550 > [ 70.458695] [] ? inet_gro_receive+0x59/0x1f0 > [ 70.458695] [] netif_receive_skb+0x22/0x90 > [ 70.458695] [] napi_skb_finish+0x37/0x50 > [ 70.458695] [] napi_gro_receive+0xe3/0xf0 > [ 70.458695] [] ? xen_swiotlb_map_sg+0x20/0x20 > [ 70.458695] [] ? xen_swiotlb_unmap_page+0x19/0x20 > [ 70.458695] [] skge_poll+0x34c/0x6f4 [skge] > [ 70.458695] [] net_rx_action+0xfa/0x2a0 > [ 70.458695] [] __do_softirq+0x9f/0x210 > [ 70.458695] [] ? irq_exit+0xd0/0xd0 > [ 70.458695] [] ? irq_exit+0xb5/0xd0 The skge driver uses hardware receive checksum where it computes the sum of the packet (but does not check it). This kind of problem happens when some part of the call chain above it updates the packet but does not update the checksum. A fix like the following is presumably needed for some part of this path. commit fa2da8cdae1dd64f78fc915ca1d1a4a93c71e7cb Author: stephen hemminger Date: Tue Nov 15 08:09:14 2011 +0000 bridge: correct IPv6 checksum after pull Bridge multicast snooping of ICMPv6 would incorrectly report a checksum prob when used with Ethernet devices like sky2 that use CHECKSUM_COMPLETE. When bytes are removed from skb, the computed checksum needs to be adjusted. Signed-off-by: Stephen Hemminger Tested-by: Martin Volf Signed-off-by: David S. Miller