From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4240EC2D0A3 for ; Mon, 9 Nov 2020 13:17:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E5FC120663 for ; Mon, 9 Nov 2020 13:17:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604927854; bh=QDFkm0gxOacetAyrSz9fzEFKHw5t+Ijq/wIQJ+oKyTI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=x75evQB7mhFE22wY0m/Ozucpl1ROofkOrriOieCTFeGhGtCUMJvxLujpTST1WWCwN //QfxApnpCrRBtiGn1MT3H9iuoxlUoJCzw04e4CiVyQV/BNQI+9iFqz8Wv5fMGnfN3 gXNtceNAGlZ2GXP+tpJ8rQR8yAJuOD8Xa+1WejdE= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732512AbgKINRc (ORCPT ); Mon, 9 Nov 2020 08:17:32 -0500 Received: from mail.kernel.org ([198.145.29.99]:44676 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387593AbgKINR2 (ORCPT ); Mon, 9 Nov 2020 08:17:28 -0500 Received: from localhost (83-86-74-64.cable.dynamic.v4.ziggo.nl [83.86.74.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 119CD20663; Mon, 9 Nov 2020 13:17:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1604927847; bh=QDFkm0gxOacetAyrSz9fzEFKHw5t+Ijq/wIQJ+oKyTI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=MMxROdqjMfGcqNjtgQECufvDYwUvOhl9NstuxU2FipP3YRAKOxVL2DtOJYna5ZJ1D TT47rtv+yGiifZPHc3V/jkkMq0sXcFc5b2GIFDfJ+pL5I35mkg7QaunsIu6EdO8u4J lJeLv3Z35dYZKMET8iRbgVKu4Mv+zurn8BdWeSvc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Maxim Plotnikov , Heiner Kallweit , Jakub Kicinski Subject: [PATCH 5.9 042/133] r8169: work around short packet hw bug on RTL8125 Date: Mon, 9 Nov 2020 13:55:04 +0100 Message-Id: <20201109125032.736665606@linuxfoundation.org> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201109125030.706496283@linuxfoundation.org> References: <20201109125030.706496283@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Heiner Kallweit [ Upstream commit 2aaf09a0e7842b3ac7be6e0b8fb1888b3daeb3b3 ] Network problems with RTL8125B have been reported [0] and with help from Realtek it turned out that this chip version has a hw problem with short packets (similar to RTL8168evl). Having said that activate the same workaround as for RTL8168evl. Realtek suggested to activate the workaround for RTL8125A too, even though they're not 100% sure yet which RTL8125 versions are affected. [0] https://bugzilla.kernel.org/show_bug.cgi?id=209839 Fixes: 0439297be951 ("r8169: add support for RTL8125B") Reported-by: Maxim Plotnikov Tested-by: Maxim Plotnikov Signed-off-by: Heiner Kallweit Link: https://lore.kernel.org/r/8002c31a-60b9-58f1-f0dd-8fd07239917f@gmail.com Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/realtek/r8169_main.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -4062,9 +4062,17 @@ err_out: return -EIO; } -static bool rtl_test_hw_pad_bug(struct rtl8169_private *tp, struct sk_buff *skb) +static bool rtl_test_hw_pad_bug(struct rtl8169_private *tp) { - return skb->len < ETH_ZLEN && tp->mac_version == RTL_GIGA_MAC_VER_34; + switch (tp->mac_version) { + case RTL_GIGA_MAC_VER_34: + case RTL_GIGA_MAC_VER_60: + case RTL_GIGA_MAC_VER_61: + case RTL_GIGA_MAC_VER_63: + return true; + default: + return false; + } } static void rtl8169_tso_csum_v1(struct sk_buff *skb, u32 *opts) @@ -4136,7 +4144,7 @@ static bool rtl8169_tso_csum_v2(struct r opts[1] |= transport_offset << TCPHO_SHIFT; } else { - if (unlikely(rtl_test_hw_pad_bug(tp, skb))) + if (unlikely(skb->len < ETH_ZLEN && rtl_test_hw_pad_bug(tp))) return !eth_skb_pad(skb); }