From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756991AbbLAVHt (ORCPT ); Tue, 1 Dec 2015 16:07:49 -0500 Received: from mail-qg0-f53.google.com ([209.85.192.53]:36353 "EHLO mail-qg0-f53.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756498AbbLAVHq (ORCPT ); Tue, 1 Dec 2015 16:07:46 -0500 MIME-Version: 1.0 In-Reply-To: <20151115184402.GA6614@achernar.madore.org> References: <20151115184402.GA6614@achernar.madore.org> Date: Tue, 1 Dec 2015 22:07:45 +0100 Message-ID: Subject: Re: "hw csum failure" error on skge driver with 4.3 kernel upon receiving ICMPv6 multicast listener discovery packets From: Stefan Ring To: David Madore Cc: Linux Kernel mailing-list , Linux network mailing-list Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Nov 15, 2015 at 7:44 PM, David Madore wrote: > The skge driver in the 4.3 kernel reports hardware checksum errors > upon receiving (certain?) IPv6 multicast packets containing ICMPv6 > multicast listener discovery messages. This is a regression since 4.1 > (I believe between 4.1 and 4.2). The e1000e driver on a different > Ethernet port of the same machine is not affected. Disabling offload > rx checksumming suppresses the errors. Nor are all IPv6 multicast > packets affected: for some reason, it seems only those containing > ICMPv6 multicast listener discovery messages trigger the problem. > > In case it also matters, the skge interface in question (eth1 in what > follows) is part of a bridge that contains another Ethernet interface > and a Wifi card. > > Here is a frame, with its link-level headers, that caused an error > when received by skge: > > 0000 33 33 ff 62 30 d8 60 fb 42 f1 b1 36 86 dd 60 00 33.b0.`.B..6..`. > 0010 00 00 00 20 00 01 fe 80 00 00 00 00 00 00 62 fb ... ..........b. > 0020 42 ff fe f1 b1 36 ff 02 00 00 00 00 00 00 00 00 B....6.......... > 0030 00 01 ff 62 30 d8 3a 00 01 00 05 02 00 00 83 00 ...b0.:......... > 0040 c9 8a 00 00 00 00 ff 02 00 00 00 00 00 00 00 00 ................ > 0050 00 01 ff 62 30 d8 ...b0. > > (Network dumps performed on another network device suggest that the > checksum is, indeed, correct.) > > And here is the syslog produced upon receiving the above packet: > > Nov 15 17:52:13 pleiades kernel: [ 661.393163] eth1: hw csum failure > Nov 15 17:52:13 pleiades kernel: [ 661.394203] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G W 4.3.0-pleiades #1 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] Hardware name: System manufacturer System Product Name/P5WD2-Premium, BIOS 0709 03/31/2006 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] ffff88013a9d5d00 ffff88013fc03aa8 ffffffff8129a186 ffff88013afe0000 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] ffff88013fc03ac0 ffffffff81436425 0000000000000000 ffff88013fc03af0 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] ffffffff8142b87a 1027316b3fc03b30 ffff88013a9d5d00 0000000000000030 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] Call Trace: > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] dump_stack+0x44/0x5e > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] netdev_rx_csum_fault+0x35/0x40 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] __skb_checksum_complete+0xca/0xd0 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] ipv6_mc_validate_checksum+0xab/0x140 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] skb_checksum_trimmed+0x8f/0x180 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] ipv6_mc_check_mld+0x105/0x330 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] br_multicast_rcv+0x8c/0xce0 [bridge] > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] ? __netif_receive_skb+0x13/0x60 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] ? netif_receive_skb_internal+0x2e/0x90 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] br_handle_frame_finish+0x28c/0x5b0 [bridge] > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] ? usb_hcd_submit_urb+0xa4/0x960 [usbcore] > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] br_handle_frame+0x151/0x270 [bridge] > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] ? usb_submit_urb+0x2d2/0x510 [usbcore] > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] __netif_receive_skb_core+0x1c2/0x990 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] ? __usb_hcd_giveback_urb+0x82/0xe0 [usbcore] > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] __netif_receive_skb+0x13/0x60 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] netif_receive_skb_internal+0x2e/0x90 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] napi_gro_receive+0xa0/0xd0 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] skge_poll+0x380/0x7a0 [skge] > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] ? lapic_next_event+0x18/0x20 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] net_rx_action+0x13c/0x300 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] __do_softirq+0xc7/0x240 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] irq_exit+0x70/0x90 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] do_IRQ+0x51/0xd0 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] common_interrupt+0x7c/0x7c > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] ? mwait_idle+0x87/0x140 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] arch_cpu_idle+0xa/0x10 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] default_idle_call+0x25/0x30 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] cpu_startup_entry+0x29c/0x310 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] rest_init+0x72/0x80 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] start_kernel+0x471/0x47e > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] ? set_init_arg+0x55/0x55 > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] x86_64_start_reservations+0x2a/0x2c > Nov 15 17:52:13 pleiades kernel: [ 661.395192] [] x86_64_start_kernel+0xe5/0xe8 > I have basically the same issue starting with v4.2, with the sky2 driver. https://bugzilla.redhat.com/show_bug.cgi?id=1266601