From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756371AbcKDNuh (ORCPT ); Fri, 4 Nov 2016 09:50:37 -0400 Received: from mail3.start.ca ([64.140.120.243]:34724 "EHLO mail3.start.ca" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751670AbcKDNuf (ORCPT ); Fri, 4 Nov 2016 09:50:35 -0400 Subject: Re: [PATCH net] r8152: Fix broken RX checksums. To: Hayes Wang , David Miller References: <9fb6be7b-95f3-6e59-c0f4-1d6c3357416d@pobox.com> <20161030.205755.1198665157526465556.davem@davemloft.net> <1f847ae0-4928-01e7-f1e7-3cbc37529961@pobox.com> <20161030.235342.134481656830778556.davem@davemloft.net> <0835B3720019904CB8F7AA43166CEEB201047353@RTITMBSV03.realtek.com.tw> <201611030159.uA31x0np004648@rtits1.realtek.com> <0835B3720019904CB8F7AA43166CEEB20104878A@RTITMBSV03.realtek.com.tw> Cc: nic_swsd , "netdev@vger.kernel.org" , "linux-kernel@vger.kernel.org" From: Mark Lord Message-ID: Date: Fri, 4 Nov 2016 09:50:20 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Yeah, the device or driver is definitely getting confused with rx_desc structures. I added code to check for unlikely rx_desc values, and it found this for starters: rx_desc: 00480801 00480401 00480001 0048fc00 0048f800 0048f400 pkt_len=2045 rx_data: 00 f0 48 00 00 ec 48 00 00 e8 48 00 00 e4 48 00 00 e0 48 00 00 dc 48 00 00 d8 48 00 00 d4 48 00 rx_data: 00 d0 48 00 00 cc 48 00 00 c8 48 00 00 c4 48 00 00 c0 48 00 00 bc 48 00 00 b8 48 00 00 b4 48 00 rx_data: 00 b0 48 00 00 ac 48 00 00 01 00 00 81 ed 00 00 00 01 00 00 00 00 00 00 00 00 00 02 4d ac 00 00 rx_data: 10 00 ff ff ff ff 00 00 01 28 83 d6 ff 6d 00 20 25 b1 58 1b 68 ff 00 05 20 01 56 41 17 35 00 00 ... The MTU/MRU on this link is the standard 1500 bytes, so a pkt_len of 2045 isn't valid here. And the rx_desc values look an awful lot like the rx_data values that follow it. There's definitely more broken here than just TCP RX checksums. -ml