Received: by 2002:ac0:aed5:0:0:0:0:0 with SMTP id t21csp2285156imb; Mon, 4 Mar 2019 00:48:57 -0800 (PST) X-Google-Smtp-Source: APXvYqzQagKdp7ece8pg1+cM0fUVAH5zqeH3BZV1ny6H9ZAVO3vQInHPE94nnwe9s8Ra1BQRQuVP X-Received: by 2002:a62:1ace:: with SMTP id a197mr19166578pfa.78.1551689337781; Mon, 04 Mar 2019 00:48:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551689337; cv=none; d=google.com; s=arc-20160816; b=lo65II9BsJEkGjX0O6Vxfu4wJmMvhurCQlAybwysqNyfYsSS8rKfirG1PQMpHX3S7Q 29/jTuXsO+v0+gYBSxF44jXJicXwMrYiUltdmhsxgaL4mWtceBkHexdGB1EqWMXqbUyS VYaNJkl5VLG4orS0iuwgVzlHUdwqQqY5tD3INS3VyO/FtrCe1fslPC1tpFoDBnOETdVW 4BE3uGL/VoRlK34/YnTmtoexs6grwCqOZuqNKWV2Gelax4Hzj8IzCyOXEmmfSmPPR3Ea Mge+1ch4tEs/yXLkWtLApHhUyCN4jalU7zl3tCyqipVxWuZHEpgZXMGhht1jZJK+xKOG 3HOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=dqw7554g97q/xH0PzQ/jBPs6xY7Dpy0lHLDZNFadV7M=; b=bHTzvYcjWSmPkskcng533z1KnFErypmxxZqyBmrD/6oTk/Mk6Qdaa1nu8+g3HYZeD8 Y1KDxr0D6byH7vEcAnQprLh8AcXdIpNG1YzhtxT/zCVXsblHCPP8YcrYk0Jdj6S84ot/ yYkKn0z3KtdydK/VkayyFwO6OUYLs4CXgMoV1FwviX6xW/TripIaJnbAtbD688TBMnYl 7T8OmQ2PuGBiK8qXyiUBOI8v67B90HKYku+IaIKvaPgYfvpsjw9BVx184AWZUXGEpcoe 1jaQgF28lAWDJiPdd5Ixxmrzl0ZTFHjN9azZif5xgIk8zXjaCDHObxVJwiEmA3tfS65R N87A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=bBA11VDk; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v32si4720041pgn.342.2019.03.04.00.48.41; Mon, 04 Mar 2019 00:48:57 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=bBA11VDk; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726850AbfCDIY3 (ORCPT + 99 others); Mon, 4 Mar 2019 03:24:29 -0500 Received: from mail.kernel.org ([198.145.29.99]:42204 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726842AbfCDIYZ (ORCPT ); Mon, 4 Mar 2019 03:24:25 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (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 4E92D20863; Mon, 4 Mar 2019 08:24:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1551687864; bh=HXfJDM6bLVf6Ky/wtwmLkX6D7xOH2laj1vthbitp+gI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=bBA11VDksFXEgNYQ0e+uTnSGxlM6tqzipNsfw+78czxRJkZW4/5USWSDXJL0d8ypD mX64/MM1SCjPV/MUPlJHIq+5pWFz1UcVYLnMN5ay4Lp7+EdMWLdgwPGl/QlHeWx0KR B38wWsfRUuEqo3wcmNlv+GQjKS26lBsIHzokoK2A= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jose Abreu , "David S. Miller" , Joao Pinto , Giuseppe Cavallaro , Alexandre Torgue Subject: [PATCH 4.14 05/52] net: stmmac: Disable ACS Feature for GMAC >= 4 Date: Mon, 4 Mar 2019 09:22:03 +0100 Message-Id: <20190304081617.458905055@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190304081617.159014799@linuxfoundation.org> References: <20190304081617.159014799@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Jose Abreu commit 565020aaeebfa7c8b3ec077bee38f4c15acc9905 upstream. ACS Feature is currently enabled for GMAC >= 4 but the llc_snap status is never checked in descriptor rx_status callback. This will cause stmmac to always strip packets even that ACS feature is already stripping them. Lets be safe and disable the ACS feature for GMAC >= 4 and always strip the packets for this GMAC version. Fixes: 477286b53f55 ("stmmac: add GMAC4 core support") Signed-off-by: Jose Abreu Cc: David S. Miller Cc: Joao Pinto Cc: Giuseppe Cavallaro Cc: Alexandre Torgue Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/stmicro/stmmac/dwmac4.h | 2 +- drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c | 7 ------- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 7 ++++++- 3 files changed, 7 insertions(+), 9 deletions(-) --- a/drivers/net/ethernet/stmicro/stmmac/dwmac4.h +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4.h @@ -336,7 +336,7 @@ enum power_event { #define MTL_RX_OVERFLOW_INT BIT(16) /* Default operating mode of the MAC */ -#define GMAC_CORE_INIT (GMAC_CONFIG_JD | GMAC_CONFIG_PS | GMAC_CONFIG_ACS | \ +#define GMAC_CORE_INIT (GMAC_CONFIG_JD | GMAC_CONFIG_PS | \ GMAC_CONFIG_BE | GMAC_CONFIG_DCRS) /* To dump the core regs excluding the Address Registers */ --- a/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c @@ -30,13 +30,6 @@ static void dwmac4_core_init(struct mac_ value |= GMAC_CORE_INIT; - /* Clear ACS bit because Ethernet switch tagging formats such as - * Broadcom tags can look like invalid LLC/SNAP packets and cause the - * hardware to truncate packets on reception. - */ - if (netdev_uses_dsa(dev)) - value &= ~GMAC_CONFIG_ACS; - if (mtu > 1500) value |= GMAC_CONFIG_2K; if (mtu > 2000) --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c @@ -3415,8 +3415,13 @@ static int stmmac_rx(struct stmmac_priv /* ACS is set; GMAC core strips PAD/FCS for IEEE 802.3 * Type frames (LLC/LLC-SNAP) + * + * llc_snap is never checked in GMAC >= 4, so this ACS + * feature is always disabled and packets need to be + * stripped manually. */ - if (unlikely(status != llc_snap)) + if (unlikely(priv->synopsys_id >= DWMAC_CORE_4_00) || + unlikely(status != llc_snap)) frame_len -= ETH_FCS_LEN; if (netif_msg_rx_status(priv)) {