Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp3180796imw; Mon, 11 Jul 2022 03:42:45 -0700 (PDT) X-Google-Smtp-Source: AGRyM1t3XiNYlo0MuHrERXPz6PVbb2ml0bh04ZFBEkIRP+UKJcbAJkaq6QBAxqqL0NXh2Q3Bqzuu X-Received: by 2002:a17:906:8a5b:b0:72b:50a1:a72c with SMTP id gx27-20020a1709068a5b00b0072b50a1a72cmr5771844ejc.152.1657536164876; Mon, 11 Jul 2022 03:42:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657536164; cv=none; d=google.com; s=arc-20160816; b=ITCdjist5ALSOl7kVZwRDlK7Stb1/NuQXsL0OyzoHziJOh/eRl2TecGQRiNF/1eFm0 k45tBjfhGC1IidUkoJ64eqLsEWxLKJmDgcGMTlZNDiQX2JxcaTuC89ADxOfuV6FbaVrm IWfR5A+QLXN/c8EXIqQMgc/dtNJUAqfnsiKWw2lGc3GBQMiStUulU68mOH7rFxNnacMW BdJY7ShFSY26R/cV/ffwIH7ysb4aY2q6hxS+sESGFyBs5lvRO0Nw5tyAr3p5I1OnCVYf 8/mhyNj12mZkQbio3GyZmyI4MOdBLM63DAznQHpblHf6pEwz6Tiwtrm+GLbrxcAD0Lbt pNsA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=AdS0Xg0OboKdcuJQFCbX1j2e5j4qf1msuPYlt6EgF50=; b=G2v8bg+/Nq5bpKli3yRtktQB5L59V+6iHdkkWv2n8l4Uj64Fk5Mq+Ak18swykQ+BZI 4qOmj2AoF1voRtszaaHJd1gXcuaglm0+b2mhFwpjcM34MY8SLw1JZJjb2xxnNJ5qUiYn dP16zPRVEz6tI6JSvtVuYBDZ+jup0R55dh/SwmkRSOC8HIo13XdmE4USttQPLC2muf31 NPixCkVb6Nbxi7VmRyrU2hIIX8EdLp/Qp2zsJhNJfbB5WR/lw+sdmJJryo6jOIpiDrub /oQFG/esX60YOi0esBlrt1nTs69nf+yfmg/bvkKI0VkM3PART80Swvu6FCCpnhXiMJ+x SyFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=GH4ZEyVf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id gt6-20020a1709072d8600b0072b4af77c94si8121917ejc.750.2022.07.11.03.42.20; Mon, 11 Jul 2022 03:42:44 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=GH4ZEyVf; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234534AbiGKKDq (ORCPT + 99 others); Mon, 11 Jul 2022 06:03:46 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57980 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234486AbiGKKC7 (ORCPT ); Mon, 11 Jul 2022 06:02:59 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B884165D79; Mon, 11 Jul 2022 02:29:05 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 07A8CB80D2C; Mon, 11 Jul 2022 09:29:04 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 49A5EC34115; Mon, 11 Jul 2022 09:29:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1657531742; bh=6IuiY1HugTIx1SU5L9n82AdNrldTGSqKut4Yoswi2KI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=GH4ZEyVfO+XDDPxLduuP0fwLE//sEosvDzda0GlXrv5GGQl2a+hdlsUpqO/30adBy RB/4SntwdQBFutZqkIIpWzG7zcOvftP8rdgWpJEogVyiGNoKYk0OfiSW3iKlncr59V r/4UiuHaquJennfMXXygIcSdoTE0t1fzbm7/ZSdE= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, "Erhard F." , Heiner Kallweit , Jakub Kicinski , Sasha Levin Subject: [PATCH 5.15 213/230] r8169: fix accessing unset transport header Date: Mon, 11 Jul 2022 11:07:49 +0200 Message-Id: <20220711090610.144898907@linuxfoundation.org> X-Mailer: git-send-email 2.37.0 In-Reply-To: <20220711090604.055883544@linuxfoundation.org> References: <20220711090604.055883544@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.7 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_HI, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Heiner Kallweit [ Upstream commit faa4e04e5e140a6d02260289a8fba8fd8d7a3003 ] 66e4c8d95008 ("net: warn if transport header was not set") added a check that triggers a warning in r8169, see [0]. The commit referenced in the Fixes tag refers to the change from which the patch applies cleanly, there's nothing wrong with this commit. It seems the actual issue (not bug, because the warning is harmless here) was introduced with bdfa4ed68187 ("r8169: use Giant Send"). [0] https://bugzilla.kernel.org/show_bug.cgi?id=216157 Fixes: 8d520b4de3ed ("r8169: work around RTL8125 UDP hw bug") Reported-by: Erhard F. Tested-by: Erhard F. Signed-off-by: Heiner Kallweit Link: https://lore.kernel.org/r/1b2c2b29-3dc0-f7b6-5694-97ec526d51a0@gmail.com Signed-off-by: Jakub Kicinski Signed-off-by: Sasha Levin --- drivers/net/ethernet/realtek/r8169_main.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/realtek/r8169_main.c b/drivers/net/ethernet/realtek/r8169_main.c index 2918947dd57c..2af4c76bcf02 100644 --- a/drivers/net/ethernet/realtek/r8169_main.c +++ b/drivers/net/ethernet/realtek/r8169_main.c @@ -4177,7 +4177,6 @@ static void rtl8169_tso_csum_v1(struct sk_buff *skb, u32 *opts) static bool rtl8169_tso_csum_v2(struct rtl8169_private *tp, struct sk_buff *skb, u32 *opts) { - u32 transport_offset = (u32)skb_transport_offset(skb); struct skb_shared_info *shinfo = skb_shinfo(skb); u32 mss = shinfo->gso_size; @@ -4194,7 +4193,7 @@ static bool rtl8169_tso_csum_v2(struct rtl8169_private *tp, WARN_ON_ONCE(1); } - opts[0] |= transport_offset << GTTCPHO_SHIFT; + opts[0] |= skb_transport_offset(skb) << GTTCPHO_SHIFT; opts[1] |= mss << TD1_MSS_SHIFT; } else if (skb->ip_summed == CHECKSUM_PARTIAL) { u8 ip_protocol; @@ -4222,7 +4221,7 @@ static bool rtl8169_tso_csum_v2(struct rtl8169_private *tp, else WARN_ON_ONCE(1); - opts[1] |= transport_offset << TCPHO_SHIFT; + opts[1] |= skb_transport_offset(skb) << TCPHO_SHIFT; } else { unsigned int padto = rtl_quirk_packet_padto(tp, skb); @@ -4389,14 +4388,13 @@ static netdev_features_t rtl8169_features_check(struct sk_buff *skb, struct net_device *dev, netdev_features_t features) { - int transport_offset = skb_transport_offset(skb); struct rtl8169_private *tp = netdev_priv(dev); if (skb_is_gso(skb)) { if (tp->mac_version == RTL_GIGA_MAC_VER_34) features = rtl8168evl_fix_tso(skb, features); - if (transport_offset > GTTCPHO_MAX && + if (skb_transport_offset(skb) > GTTCPHO_MAX && rtl_chip_supports_csum_v2(tp)) features &= ~NETIF_F_ALL_TSO; } else if (skb->ip_summed == CHECKSUM_PARTIAL) { @@ -4407,7 +4405,7 @@ static netdev_features_t rtl8169_features_check(struct sk_buff *skb, if (rtl_quirk_packet_padto(tp, skb)) features &= ~NETIF_F_CSUM_MASK; - if (transport_offset > TCPHO_MAX && + if (skb_transport_offset(skb) > TCPHO_MAX && rtl_chip_supports_csum_v2(tp)) features &= ~NETIF_F_CSUM_MASK; } -- 2.35.1