From patchwork Tue Dec 17 21:02:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211728 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="aKTNLfD9"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47crG43YMRz9sR8 for ; Wed, 18 Dec 2019 08:03:24 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728052AbfLQVDX (ORCPT ); Tue, 17 Dec 2019 16:03:23 -0500 Received: from mail-wm1-f67.google.com ([209.85.128.67]:51131 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727531AbfLQVDU (ORCPT ); Tue, 17 Dec 2019 16:03:20 -0500 Received: by mail-wm1-f67.google.com with SMTP id a5so4343382wmb.0; Tue, 17 Dec 2019 13:03:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=/AYGnaY52D8sTJ8v+M32HjD/4/ljP+HptYpvJ6gRoJU=; b=aKTNLfD9uwFAkheMuc9ovj1lYQUuOvhFPZevrml+hj7ggZKitkuIwzMRzA3jGBUpo1 qTyVnYfH71ZMM6iXv5tJ/gvBXp6+4gUQS9wRAZi4O2EzcxFAFQcCnwaSRPUEjL5FXPHg KYXil54Duq34UWHM7Bn6rYleJjNci7FYXOGmeq4VUHcSSR7KbKjUx7ndk3Tut2pZz2ab JUkehBnVZ7NHnTdvnPojkuowYUf9dnBkhK8ieCfLQbO4vNV3Q/aTU9gSJ2RuZjU9Cmr8 lZSCX305RxMClP49lo1Sq1X+I4LnQgGm+ALQwM7XWHUQlEFFpQzNia9r0iQ9MlKCaBxq sSWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=/AYGnaY52D8sTJ8v+M32HjD/4/ljP+HptYpvJ6gRoJU=; b=R/kWxXcMfaodDl/ZrpJ/dB8vgf3TIY2VJo8aF/wZM2dQlnMlQIuaM29TVDrAi9zE+7 cuQteoZWXxdlVPlmcZ5TcbyEEOEim30pcYs2Uimho1Scv2k6O6WoWIgxDdrx7KDyhKdA VUjfieHWi4O9U7rQX2EiWonblsBHn8lR3BNa/x3McqukYNfFjwJW8cZXxmfMEgiMiCdP ia8dM/vO6Y7x1Ephbz7KBJgdJN+MOiO2Y3N/omEHdCYSCNopBQ2d2PoIAlQC2kzUUXoz exY89N+0bB1Szrh2W+Z07pmXylZfvD5s16rW0sIlzbxJre2eLukv3noBlYWdC1cUvchS Fhvw== X-Gm-Message-State: APjAAAXV2S87Y8fwKib7/WIKtMkIsAW9EDqoBr7cr3jLBT49Xz9o4eJ4 b6OO9kbazeQP6lzQm5Cnfno= X-Google-Smtp-Source: APXvYqyKOCqC8XbXj81TCEPdrfxwBY/JaIp3Idhsc6HbGPDp4KdSuA6Bh1fwKeDTqZ7Eqj0KgZhCTA== X-Received: by 2002:a1c:7419:: with SMTP id p25mr7443172wmc.129.1576616598729; Tue, 17 Dec 2019 13:03:18 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i5sm37856wml.31.2019.12.17.13.03.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 13:03:18 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next 1/8] net: bcmgenet: enable NETIF_F_HIGHDMA flag Date: Tue, 17 Dec 2019 13:02:22 -0800 Message-Id: <1576616549-39097-2-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576616549-39097-1-git-send-email-opendmb@gmail.com> References: <1576616549-39097-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This commit configures the DMA masks for the GENET driver and sets the NETIF_F_HIGHDMA flag to report support of the feature. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 32f1245a69e2..d9defb8b1e5f 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -2,7 +2,7 @@ /* * Broadcom GENET (Gigabit Ethernet) controller driver * - * Copyright (c) 2014-2017 Broadcom + * Copyright (c) 2014-2019 Broadcom */ #define pr_fmt(fmt) "bcmgenet: " fmt @@ -3537,7 +3537,7 @@ static int bcmgenet_probe(struct platform_device *pdev) /* Set hardware features */ dev->hw_features |= NETIF_F_SG | NETIF_F_IP_CSUM | - NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM; + NETIF_F_IPV6_CSUM | NETIF_F_HIGHDMA | NETIF_F_RXCSUM; /* Request the WOL interrupt and advertise suspend if available */ priv->wol_irq_disabled = true; @@ -3574,6 +3574,14 @@ static int bcmgenet_probe(struct platform_device *pdev) bcmgenet_set_hw_params(priv); + err = -EIO; + if (priv->hw_params->flags & GENET_HAS_40BITS) + err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(40)); + if (err) + err = dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)); + if (err) + goto err; + /* Mii wait queue */ init_waitqueue_head(&priv->wq); /* Always use RX_BUF_LENGTH (2KB) buffer for all chips */ From patchwork Tue Dec 17 21:02:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211735 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="UW7u8lc4"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47crJ80lwWz9sRl for ; Wed, 18 Dec 2019 08:05:12 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728128AbfLQVDX (ORCPT ); Tue, 17 Dec 2019 16:03:23 -0500 Received: from mail-wr1-f68.google.com ([209.85.221.68]:38766 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727906AbfLQVDW (ORCPT ); Tue, 17 Dec 2019 16:03:22 -0500 Received: by mail-wr1-f68.google.com with SMTP id y17so12834201wrh.5; Tue, 17 Dec 2019 13:03:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=UEz81YOfOgBDrXB7OBw3GPro4KGLJ3XN1bscFo4nSHA=; b=UW7u8lc4UrnlQsYqvTM5O8wp4aApvF3HHuSPVVE8kShJFzS9keNU+nrzSJ/OIakMz7 fCrtDfUlR1zsDjKHEIpaVvTNeM3vjeypRhfqoKgIHZ2gTcqzrhFCN9tqiKsZFAtxLS6T h8Z2uh3tmJTwO6zMVd5R/k65XLu+Nav5giW9RrR84PT6KD8qcfvm5YzgyzC20naOrRb5 AHrMMr5+D/m5l81BkzXcmZqnfTMrViHbyjCFdeHM+7D8BCCxel0sXOzzQ0WCv25XcVcG jXBV1E9s5D5Wjy/7XoCmLLTgVX68T7ucxh+yo2aztUUQ/dvzLUvfDMwHdXrGhyr0KKB6 EyQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=UEz81YOfOgBDrXB7OBw3GPro4KGLJ3XN1bscFo4nSHA=; b=LXErbKSA4RmbMJ1BKYKI0hvhRZMZJJW9PP4tDy5o1BywPiY1Pqxe0DfIbblyBK5vQ/ DhU+YqfedgLhYOdull+erHwFmQlYH5GcrjDim/QyB2yx0037zH3d1CZoAbb6+dwAph0L kP5R+qKUdtb4BgyItj+9mt3/pJH2et+aobnfiFdFiv8VlasemWlX39s8D6VWZ5yQ0Dd2 QnaqsOa2zUPUy8wcpa280Ty+pbyCnwrxB7a7L8qLU4dpSWyrsYaESr8bLaBaLuFsYbO7 KSg+PNEuqvgZlkZeKiBK62DOG8clijrq80pij4xG0AO7c4SqEX/mTwNbYyTK5bojxjha GHDw== X-Gm-Message-State: APjAAAU6GV67p56s0scNgirpQgAYhD03KOhYu5bFopetz+AmbiqzuBfl uwYzKqt7aD3ygxdmqiBzEXg= X-Google-Smtp-Source: APXvYqwkOwdxPepwdqVfFroGEWL76TWFApWlfrJJioALoFLCcNgqmUhPw1gYUlzqbe8/6KUp+pULmg== X-Received: by 2002:adf:bc87:: with SMTP id g7mr40599814wrh.121.1576616600781; Tue, 17 Dec 2019 13:03:20 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i5sm37856wml.31.2019.12.17.13.03.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 13:03:20 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next 2/8] net: bcmgenet: enable NETIF_F_HW_CSUM feature Date: Tue, 17 Dec 2019 13:02:23 -0800 Message-Id: <1576616549-39097-3-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576616549-39097-1-git-send-email-opendmb@gmail.com> References: <1576616549-39097-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The GENET hardware should be capable of generating IP checksums using the NETIF_F_HW_CSUM feature, so switch to using that feature instead of the depricated NETIF_F_IP_CSUM and NETIF_F_IPV6_CSUM. Signed-off-by: Doug Berger --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 29 +++++++++++--------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index d9defb8b1e5f..cd07b3ad1d53 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -549,7 +549,7 @@ static int bcmgenet_set_tx_csum(struct net_device *dev, tbuf_ctrl = bcmgenet_tbuf_ctrl_get(priv); rbuf_ctrl = bcmgenet_rbuf_readl(priv, RBUF_CTRL); - desc_64b_en = !!(wanted & (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM)); + desc_64b_en = !!(wanted & NETIF_F_HW_CSUM); /* enable 64 bytes descriptor in both directions (RBUF and TBUF) */ if (desc_64b_en) { @@ -574,7 +574,7 @@ static int bcmgenet_set_features(struct net_device *dev, netdev_features_t wanted = dev->wanted_features; int ret = 0; - if (changed & (NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM)) + if (changed & NETIF_F_HW_CSUM) ret = bcmgenet_set_tx_csum(dev, wanted); if (changed & (NETIF_F_RXCSUM)) ret = bcmgenet_set_rx_csum(dev, wanted); @@ -1516,24 +1516,19 @@ static struct sk_buff *bcmgenet_put_tx_csum(struct net_device *dev, ip_proto = ipv6_hdr(skb)->nexthdr; break; default: - return skb; + /* don't use UDP flag */ + ip_proto = 0; + break; } offset = skb_checksum_start_offset(skb) - sizeof(*status); tx_csum_info = (offset << STATUS_TX_CSUM_START_SHIFT) | - (offset + skb->csum_offset); + (offset + skb->csum_offset) | + STATUS_TX_CSUM_LV; - /* Set the length valid bit for TCP and UDP and just set - * the special UDP flag for IPv4, else just set to 0. - */ - if (ip_proto == IPPROTO_TCP || ip_proto == IPPROTO_UDP) { - tx_csum_info |= STATUS_TX_CSUM_LV; - if (ip_proto == IPPROTO_UDP && - ip_ver == htons(ETH_P_IP)) - tx_csum_info |= STATUS_TX_CSUM_PROTO_UDP; - } else { - tx_csum_info = 0; - } + /* Set the special UDP flag for UDP */ + if (ip_proto == IPPROTO_UDP) + tx_csum_info |= STATUS_TX_CSUM_PROTO_UDP; status->tx_csum_info = tx_csum_info; } @@ -3536,8 +3531,8 @@ static int bcmgenet_probe(struct platform_device *pdev) priv->msg_enable = netif_msg_init(-1, GENET_MSG_DEFAULT); /* Set hardware features */ - dev->hw_features |= NETIF_F_SG | NETIF_F_IP_CSUM | - NETIF_F_IPV6_CSUM | NETIF_F_HIGHDMA | NETIF_F_RXCSUM; + dev->hw_features |= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_HW_CSUM | + NETIF_F_RXCSUM; /* Request the WOL interrupt and advertise suspend if available */ priv->wol_irq_disabled = true; From patchwork Tue Dec 17 21:02:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211729 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="NsZ6qiSC"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47crG7648zz9sR8 for ; Wed, 18 Dec 2019 08:03:27 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728217AbfLQVDZ (ORCPT ); Tue, 17 Dec 2019 16:03:25 -0500 Received: from mail-wr1-f67.google.com ([209.85.221.67]:37110 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726608AbfLQVDY (ORCPT ); Tue, 17 Dec 2019 16:03:24 -0500 Received: by mail-wr1-f67.google.com with SMTP id w15so12870668wru.4; Tue, 17 Dec 2019 13:03:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=NP+Ttt9H3Ex0HBO5rDc8Vmumcq1LoDHKpxYSLTwm1P0=; b=NsZ6qiSCk+Z0J0Or9c6jYCMK5yMn2LzlesEWp/9oKIUaym28dH+2omB2g3Jn7G0G4b Dq8TzJm8zcp+uHfM7e2dmjMN44ixOx6vl1RjJ216dzRBQCsis6+KKEiy4m4tmLA4QtLu xNk1ZFYHjIm6O7lVBXWnSeBqUYY6YDgJhlBysiJDGTSxIrLwQVUFrd3KhskDkPYHEzKh 1b7WW2xL+5mRS/b92z89O+/vXjc7IrL+FG93cjeE36x3zkezYmZiDwaMnhF/bHCUS2RP GeuACJduejzSf1ec8un6gG/UDd+5c8I7kBDsYvw6ypbsB0E9rB5z8fjvDEshlaYZr46l 0s2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=NP+Ttt9H3Ex0HBO5rDc8Vmumcq1LoDHKpxYSLTwm1P0=; b=a/9HVdZVFWZZDxj9+pq1hFukrfpgGN6hVOwidwr3+P+sohkS6uX6gcOwTNCJKU7KuM cQnJ4WoEv4yRfZX49NPRLZa+OMPxuzRH52zitsuMULCrIGwHwgs3iYPQrVEs8uJ1m6Jj nISeInroNsmJDx6jtc18VjTmn7sltqFCyEerpR+u8EgZeOAN2iB7G9AcbBfGMaldGwGu ULJvagJXeB2XGiJyA1dGc7rBVuICVDZOzXqO4N64Y+7Vtt8iaEk7Hi9ydHfyMjhG3uWb 2UaumAiT7VrGFKlkhN2rd86BKiULkUCxoVtOT74WHz0TVGrGZpNkVlX+ml5uNw0y0rPA DuFg== X-Gm-Message-State: APjAAAWYKSj6+zGtgpEY3AR4jg1UlAougQEzuZwyCXikpGyle09e2MKo 8bbDuFYOUdSTRAX5Pzd9K64KnMBt X-Google-Smtp-Source: APXvYqwTl5T93JBbBujZpQbJJ87DKzF3MndmVunsjotBOKrFeCBbWfmP5Pz+VPaD44oRAqDS/xVenw== X-Received: by 2002:adf:f103:: with SMTP id r3mr38126416wro.295.1576616602771; Tue, 17 Dec 2019 13:03:22 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i5sm37856wml.31.2019.12.17.13.03.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 13:03:22 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next 3/8] net: bcmgenet: use CHECKSUM_COMPLETE for NETIF_F_RXCSUM Date: Tue, 17 Dec 2019 13:02:24 -0800 Message-Id: <1576616549-39097-4-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576616549-39097-1-git-send-email-opendmb@gmail.com> References: <1576616549-39097-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This commit updates the Rx checksum offload behavior of the driver to use the more generic CHECKSUM_COMPLETE method that supports all protocols over the CHECKSUM_UNNECESSARY method that only applies to some protocols known by the hardware. This behavior is perceived to be superior. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli Reported-by: kbuild test robot --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 13 +++++-------- drivers/net/ethernet/broadcom/genet/bcmgenet.h | 1 + 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index cd07b3ad1d53..5674dc304032 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -521,7 +521,7 @@ static int bcmgenet_set_rx_csum(struct net_device *dev, /* enable rx checksumming */ if (rx_csum_en) - rbuf_chk_ctrl |= RBUF_RXCHK_EN; + rbuf_chk_ctrl |= RBUF_RXCHK_EN | RBUF_L3_PARSE_DIS; else rbuf_chk_ctrl &= ~RBUF_RXCHK_EN; priv->desc_rxchk_en = rx_csum_en; @@ -1739,7 +1739,6 @@ static unsigned int bcmgenet_desc_rx(struct bcmgenet_rx_ring *ring, unsigned int bytes_processed = 0; unsigned int p_index, mask; unsigned int discards; - unsigned int chksum_ok = 0; /* Clear status before servicing to reduce spurious interrupts */ if (ring->index == DESC_INDEX) { @@ -1793,6 +1792,10 @@ static unsigned int bcmgenet_desc_rx(struct bcmgenet_rx_ring *ring, status = (struct status_64 *)skb->data; dma_length_status = status->length_status; + if (priv->desc_rxchk_en) { + skb->csum = ntohs(status->rx_csum & 0xffff); + skb->ip_summed = CHECKSUM_COMPLETE; + } } /* DMA flags and length are still valid no matter how @@ -1835,18 +1838,12 @@ static unsigned int bcmgenet_desc_rx(struct bcmgenet_rx_ring *ring, goto next; } /* error packet */ - chksum_ok = (dma_flag & priv->dma_rx_chk_bit) && - priv->desc_rxchk_en; - skb_put(skb, len); if (priv->desc_64b_en) { skb_pull(skb, 64); len -= 64; } - if (likely(chksum_ok)) - skb->ip_summed = CHECKSUM_UNNECESSARY; - /* remove hardware 2bytes added for IP alignment */ skb_pull(skb, 2); len -= 2; diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.h b/drivers/net/ethernet/broadcom/genet/bcmgenet.h index a5659197598f..11645cccc207 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.h +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.h @@ -251,6 +251,7 @@ struct bcmgenet_mib_counters { #define RBUF_CHK_CTRL 0x14 #define RBUF_RXCHK_EN (1 << 0) #define RBUF_SKIP_FCS (1 << 4) +#define RBUF_L3_PARSE_DIS (1 << 5) #define RBUF_ENERGY_CTRL 0x9c #define RBUF_EEE_EN (1 << 0) From patchwork Tue Dec 17 21:02:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211734 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Pyfnlm1M"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47crHl6xCCz9sRY for ; Wed, 18 Dec 2019 08:04:51 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728782AbfLQVEv (ORCPT ); Tue, 17 Dec 2019 16:04:51 -0500 Received: from mail-wm1-f65.google.com ([209.85.128.65]:33380 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728208AbfLQVD0 (ORCPT ); Tue, 17 Dec 2019 16:03:26 -0500 Received: by mail-wm1-f65.google.com with SMTP id d139so3121143wmd.0; Tue, 17 Dec 2019 13:03:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=fSUWXakASxcG8jM5XmWMHJ/oz4Kt5+UVWCiun2B1998=; b=Pyfnlm1MgePaptkY5iNr5orCz+53W7l4S0FaB/OcdJ4Ytc8zlPvzu2axf8pUzLn5WM NSeJWGaPDOJcgvAt9jdxB9E5Tryhv+AhpjfR5+9S4HfE9X0I3ICCTRlHfUotnV5jRyp0 CozbyCwcQVir1sWSqPU3N4iE3x3R4En2VPLkayuItmYnHH0xrmrktZ52MIYNftnK2snT GxIRqCTQ+9Unq1yEEQPalZt+AOvl01+6DaRx31MUlXISqffaQpjNzTFCfpzVxE84w07p ddOsrTq2ix6okP3LbaihhcKD8uyK2tyw3BZQniUt2qheSiZ5WOK406PcYa/+HcL7rdx9 FwhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=fSUWXakASxcG8jM5XmWMHJ/oz4Kt5+UVWCiun2B1998=; b=LRfxh5mEx79iu6dto5pxYif6yRo3o3ZzcqgoljZh2mJVEJfm7h+R5Ave6E1zMxbKgQ 4pOY4Iua7/AKGACraTztz7A6/YZL8f4ndTh0iJMNcOfmkF9KvFmgQAFVu8AkKOySl8MR DZUE/8I+Nj6X+Ov69ay7HlVrB5EyXM+pnDXAlAw8EmoP7Y4QaoUEsZVdnqbungWG99B+ gng7jZvaCuX/Q0oOiQSqWUsL61OElM/cIaubQGxvzGrxvW0xW2lOdEUrcOn5y4fNSNt5 zixGxfkSn22RWBYXcCm6Xy/CKeQKKw5KfSYfAxfPpIxvTUYvfUr9Y3I5+m/rHaRcDJna tjtg== X-Gm-Message-State: APjAAAXB7d6BP1N4sQaFx/ieiisQNzzECEfMltw5ULf7JLHHt6R2P6VB 1zlXzG7Q4Lyj11KxaGfN4EzqK8PJ X-Google-Smtp-Source: APXvYqwWbkWnoF+qAPy1RDpUSqSNPuqhzf1UIsscW57ZV0Bi/8Qk6Ygl5GQ9shfP6iFVebsjV7dQmA== X-Received: by 2002:a7b:ca4c:: with SMTP id m12mr7454394wml.176.1576616604786; Tue, 17 Dec 2019 13:03:24 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i5sm37856wml.31.2019.12.17.13.03.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 13:03:24 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next 4/8] net: bcmgenet: Refactor bcmgenet_set_features() Date: Tue, 17 Dec 2019 13:02:25 -0800 Message-Id: <1576616549-39097-5-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576616549-39097-1-git-send-email-opendmb@gmail.com> References: <1576616549-39097-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In preparation for unconditionally enabling TX and RX checksum offloads, refactor bcmgenet_set_features() a bit such that __netdev_update_features() during register_netdev() can make sure that features are correctly programmed during network device registration. Since we can now be called during register_netdev() with clocks gated, we need to temporarily turn them on/off in order to have a successful register programming. We also move the CRC forward setting read into bcmgenet_set_features() since priv->crc_fwd_en matters while turning on RX checksum offload, that way we are guaranteed they are in sync in case we ever add support for NETIF_F_RXFCS at some point in the future. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 38 +++++++++++++------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 5674dc304032..8afa675b45da 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -508,8 +508,8 @@ static int bcmgenet_set_link_ksettings(struct net_device *dev, return phy_ethtool_ksettings_set(dev->phydev, cmd); } -static int bcmgenet_set_rx_csum(struct net_device *dev, - netdev_features_t wanted) +static void bcmgenet_set_rx_csum(struct net_device *dev, + netdev_features_t wanted) { struct bcmgenet_priv *priv = netdev_priv(dev); u32 rbuf_chk_ctrl; @@ -535,12 +535,10 @@ static int bcmgenet_set_rx_csum(struct net_device *dev, rbuf_chk_ctrl &= ~RBUF_SKIP_FCS; bcmgenet_rbuf_writel(priv, rbuf_chk_ctrl, RBUF_CHK_CTRL); - - return 0; } -static int bcmgenet_set_tx_csum(struct net_device *dev, - netdev_features_t wanted) +static void bcmgenet_set_tx_csum(struct net_device *dev, + netdev_features_t wanted) { struct bcmgenet_priv *priv = netdev_priv(dev); bool desc_64b_en; @@ -563,21 +561,27 @@ static int bcmgenet_set_tx_csum(struct net_device *dev, bcmgenet_tbuf_ctrl_set(priv, tbuf_ctrl); bcmgenet_rbuf_writel(priv, rbuf_ctrl, RBUF_CTRL); - - return 0; } static int bcmgenet_set_features(struct net_device *dev, netdev_features_t features) { - netdev_features_t changed = features ^ dev->features; - netdev_features_t wanted = dev->wanted_features; - int ret = 0; + struct bcmgenet_priv *priv = netdev_priv(dev); + u32 reg; + int ret; + + ret = clk_prepare_enable(priv->clk); + if (ret) + return ret; + + /* Make sure we reflect the value of CRC_CMD_FWD */ + reg = bcmgenet_umac_readl(priv, UMAC_CMD); + priv->crc_fwd_en = !!(reg & CMD_CRC_FWD); - if (changed & NETIF_F_HW_CSUM) - ret = bcmgenet_set_tx_csum(dev, wanted); - if (changed & (NETIF_F_RXCSUM)) - ret = bcmgenet_set_rx_csum(dev, wanted); + bcmgenet_set_tx_csum(dev, features); + bcmgenet_set_rx_csum(dev, features); + + clk_disable_unprepare(priv->clk); return ret; } @@ -2878,10 +2882,6 @@ static int bcmgenet_open(struct net_device *dev) init_umac(priv); - /* Make sure we reflect the value of CRC_CMD_FWD */ - reg = bcmgenet_umac_readl(priv, UMAC_CMD); - priv->crc_fwd_en = !!(reg & CMD_CRC_FWD); - bcmgenet_set_hw_addr(priv, dev->dev_addr); if (priv->internal_phy) { From patchwork Tue Dec 17 21:02:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211733 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="LtUP2bpM"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47crHg2TVnz9sRY for ; Wed, 18 Dec 2019 08:04:47 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728305AbfLQVD3 (ORCPT ); Tue, 17 Dec 2019 16:03:29 -0500 Received: from mail-wr1-f68.google.com ([209.85.221.68]:42027 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727987AbfLQVD2 (ORCPT ); Tue, 17 Dec 2019 16:03:28 -0500 Received: by mail-wr1-f68.google.com with SMTP id q6so12797325wro.9; Tue, 17 Dec 2019 13:03:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=joygie8AOg1VwSePGBgwAjx5b22RYtoOV9m0DO00iVM=; b=LtUP2bpMcXNRxEoOJADHtWotil2wo4uFauu/+XATqLPmxfdoYG1wGfcsfNNG9wZmc4 4nhNQPUfJqZPtb+tKxLZ17U9Va3Yiy1P+09+T4EgWMEdYNPDYIYyrVg8EiVMUjADWQHR 1T2Q89YeK0CpTSFd6sx1/OKwtLi/GETpwEAEnQipIoMNfOr2jrzh/r+w7OpMk4LElp3W sB/e2Zr+A0y2tVJzoa0XiJIwRDJtwpvGqfEi5wTxYXvhaavxmanTJ8Zmqmkneq4ZxhGa X/7CSFOQRvYce9dEeM+jTAvoTi3BqeefznnQp2U0r64mJh8XjsiSNB1tPp4ugE/Fn4HQ BPcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=joygie8AOg1VwSePGBgwAjx5b22RYtoOV9m0DO00iVM=; b=damgaqKJ0kmb8VRQ3gp1/SYMsw+DiLmrr8DkQk4vBAqqzDlC+Wj/xa+QQtLnMj4OHS 0frP61SFBqkduaWkUudpLD8ggu6kDC4K/R88NTMPN9tVjBQFcAOdFG0NHw+i/uELcumV hnKY/6gwwp3T/bWnU2XVRGTmzo3Df/3M0TYlsD3zNGz3Jvro9J6O5FPKmTaOqbtyOQFv N8Nsh1UlngG9dNzUweCJbjqbNH223CjJEQwENBMzp9O/Of78VXEyiHJIQzG532wOvemB x+Y4PyZ8HUrucw2NpOWQ8JxO6NHZpl5xGnbbSCn/ufTL1yCzVLvM/OGZyt/h3P/OX8qU NVow== X-Gm-Message-State: APjAAAUFAbc2q6URc8O0Gp0LGlnxhX0qa1R4dfEJ5TZ2cyiTvt/iIVNO UZwMFOpqQDzUBD4om2xL88Y= X-Google-Smtp-Source: APXvYqwAB68s0IUOu/AQPyUT/45WKYLwcO4HKGA+VJRRlNLABdHq/Dx12TkBLzpmfXfeezeKQudFUA== X-Received: by 2002:a05:6000:50:: with SMTP id k16mr38837675wrx.145.1576616606846; Tue, 17 Dec 2019 13:03:26 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i5sm37856wml.31.2019.12.17.13.03.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 13:03:26 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next 5/8] net: bcmgenet: Utilize bcmgenet_set_features() during resume/open Date: Tue, 17 Dec 2019 13:02:26 -0800 Message-Id: <1576616549-39097-6-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576616549-39097-1-git-send-email-opendmb@gmail.com> References: <1576616549-39097-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org During driver resume and open, the HW may have lost its context/state, utilize bcmgenet_set_features() to make sure we do restore the correct set of features that were previously configured. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 8afa675b45da..0df44c7076f1 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -2882,6 +2882,11 @@ static int bcmgenet_open(struct net_device *dev) init_umac(priv); + /* Apply features again in case we changed them while interface was + * down + */ + bcmgenet_set_features(dev, dev->features); + bcmgenet_set_hw_addr(priv, dev->dev_addr); if (priv->internal_phy) { @@ -3689,6 +3694,9 @@ static int bcmgenet_resume(struct device *d) genphy_config_aneg(dev->phydev); bcmgenet_mii_config(priv->dev, false); + /* Restore enabled features */ + bcmgenet_set_features(dev, dev->features); + bcmgenet_set_hw_addr(priv, dev->dev_addr); if (priv->internal_phy) { From patchwork Tue Dec 17 21:02:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211732 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="o1uu9pMU"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47crHT3vyCz9sRY for ; Wed, 18 Dec 2019 08:04:37 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728362AbfLQVDb (ORCPT ); Tue, 17 Dec 2019 16:03:31 -0500 Received: from mail-wm1-f66.google.com ([209.85.128.66]:40818 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728299AbfLQVDa (ORCPT ); Tue, 17 Dec 2019 16:03:30 -0500 Received: by mail-wm1-f66.google.com with SMTP id t14so4706607wmi.5; Tue, 17 Dec 2019 13:03:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=r9MEyJQ7xvqRtu/cx7pnw1DLhc2cZ7pjuqsZn/yC3vQ=; b=o1uu9pMUtQnkBpSFKw7Z/v9QCY0tsk8SbusLF3JzbkPczLMv+pBwaFGTqEQCoVV4Lo B1GQofHHOq8A/7WDtrpFe9jsVjyHtXeWX5MjeJkK5cjHH5B7a6rvaoUFOCyvharjFT3i oSBrgUla5c8bAkM51DOchpxTR10KklD7ES9BDX6PY2jkIaqvm7Rp3o/S4/zXIz3dw7fq O7OmNiOxhtn+2MeYRFARh/8BCB20kVeJFN2NHftAMxsi1NamcF9KTlx5wsomxH0ttKoB FwVGTTMS5ZAQiibOyNOrjKqvy29LPuBh6rRYTkWwgNBkqDKlNy701d+sHOun+VU4/XK4 Kjsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=r9MEyJQ7xvqRtu/cx7pnw1DLhc2cZ7pjuqsZn/yC3vQ=; b=BhG6tOpP6S1RrlCVv+L0bWJO6XW16N/iPtasMQAmFuOzJp0kg5UiE6Vs5z67vZXY48 Ml3rXtdRjGj8uDsaYy3xyrLdZ5Mogq8rXMTvQB7oI+v1T+qgUxUp4oq6rYYtINBPbLnR QvQn+2vh/mCERAHgFXlYAW8T3xOnbLVyvTmQHsrkBJSCuwXjy0E+2QazHNLLDKB9bxLg IBCmzED0BgkUSudNVHwhcBFlz3vZtOLCRlfXHIdPmtXA+6E0cv+u/iaTo7ZKhiqCE52b 54z4Ja8gGgsWSCweyb8DxJIS9T8dY/wweg0hmUzGp4DlS4D8Zhqg/lX5uSZMUDUJ9KKk 8VXw== X-Gm-Message-State: APjAAAWv2rGWKuPglrUUJkDE+pPdEElSbhFaZS4g3ivRg4mKz9w686gE WD28CdxHbq7XJ9UJVQ4LBTI= X-Google-Smtp-Source: APXvYqx2rRwNzXbZWKDlAuQ19ISsVoZB11/RJNO8lRwUIoSWsBxkeJI/HRjX3hQLa/QcTL1ULm0UIg== X-Received: by 2002:a1c:41c4:: with SMTP id o187mr7743727wma.24.1576616608908; Tue, 17 Dec 2019 13:03:28 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i5sm37856wml.31.2019.12.17.13.03.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 13:03:28 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next 6/8] net: bcmgenet: Turn on offloads by default Date: Tue, 17 Dec 2019 13:02:27 -0800 Message-Id: <1576616549-39097-7-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576616549-39097-1-git-send-email-opendmb@gmail.com> References: <1576616549-39097-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org We can turn on the RX/TX checksum offloads and the scatter/gather features by default and make sure that those are properly reflected back to e.g: stacked devices such as VLAN. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 0df44c7076f1..b751fa76d0b0 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -3532,9 +3532,11 @@ static int bcmgenet_probe(struct platform_device *pdev) priv->msg_enable = netif_msg_init(-1, GENET_MSG_DEFAULT); - /* Set hardware features */ - dev->hw_features |= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_HW_CSUM | - NETIF_F_RXCSUM; + /* Set default features */ + dev->features |= NETIF_F_SG | NETIF_F_HIGHDMA | NETIF_F_HW_CSUM | + NETIF_F_RXCSUM; + dev->hw_features |= dev->features; + dev->vlan_features |= dev->features; /* Request the WOL interrupt and advertise suspend if available */ priv->wol_irq_disabled = true; From patchwork Tue Dec 17 21:02:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211730 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="MintjkZC"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47crGH59T5z9sRM for ; Wed, 18 Dec 2019 08:03:35 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728395AbfLQVDd (ORCPT ); Tue, 17 Dec 2019 16:03:33 -0500 Received: from mail-wm1-f65.google.com ([209.85.128.65]:34872 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728371AbfLQVDd (ORCPT ); Tue, 17 Dec 2019 16:03:33 -0500 Received: by mail-wm1-f65.google.com with SMTP id p17so4730364wmb.0; Tue, 17 Dec 2019 13:03:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=EKxVNnjdcW7UqI1MnLHXmGc5PlnuEhB2TmXteUbCxgg=; b=MintjkZCoOxXDI0mGNQAdwBfJv9iqgmx55CfHoaCIQtJXFeK234R6HUHkkV0Bo8qzy eDz8cPGNc8ic9PQfRFE0gj7TSOAxfdCPn9XUX+uQA6+k0tO0m5PwoNBjVgQEA6JZK0zW OrcKasR5i9sBs0Na2zm7/gqTBI1K+Mp4g9KWbXTvN9MK5ObIVGvApy42K+Rwx5GIimP2 Aoh5dehLEqOFNJusdiNEXvrm3xmdbXHjQoEfYwY7XpBeDfJ2Ea0953pnP2AePUBw1sjs ulfMqarNBdgL8xTlAweCyu+m7y40J6lp45523aMNKNLbH9SOPPeY/XZd9Jodme1lPR2Y R+kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=EKxVNnjdcW7UqI1MnLHXmGc5PlnuEhB2TmXteUbCxgg=; b=s6+olEvymldMuBe1q+90V6DMfpv3Y6B0vVvnWRi+BepKEMW+jqKmRbnpedmR2EaJBS QMpgBwIzl01i8pWTVK7CU7HVq8wTR4rPeMiue6WH5KynJHmfahIuwuI61cE6V2OgmoeO KnL9Fo4K3VzHMJaE7u8IhOruIjPf3iV0QIJl356lN+fTLX7ZGVew3GRAB8BuDFB02bVe rzSl7fgzcYSLS5S0szYOnxR3TOb4mR3VyIrNiqDK90yQqlfEN1gAWSufEUQttwKFUEV9 FnS8DMv62syKc5pdwjkeW0vmUxNw41BkRT0fQkNQSYubhi60uOXaaMqeSevQRKIcxpO7 lIeg== X-Gm-Message-State: APjAAAVtntoMuydmYwW6xq6A3bJFJXsRWCBxj+jNUiKGplPG3SPnqT/8 Z4xv2P7bHdhVRg4IPRfqyFY= X-Google-Smtp-Source: APXvYqxuuRtB5b7Haj82wQnvqoMmLrAwjbw31GxEqNwQjrkFp/Jcsq7AShDUpTeK0l3PgOiWlsi7qg== X-Received: by 2002:a1c:9a52:: with SMTP id c79mr7645826wme.127.1576616611180; Tue, 17 Dec 2019 13:03:31 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i5sm37856wml.31.2019.12.17.13.03.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 13:03:30 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next 7/8] net: bcmgenet: Be drop monitor friendly while re-allocating headroom Date: Tue, 17 Dec 2019 13:02:28 -0800 Message-Id: <1576616549-39097-8-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576616549-39097-1-git-send-email-opendmb@gmail.com> References: <1576616549-39097-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org During bcmgenet_put_tx_csum() make sure we differentiate a SKB headroom re-allocation failure from the normal swap and replace path. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index b751fa76d0b0..0280e76bb60f 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -1499,11 +1499,12 @@ static struct sk_buff *bcmgenet_put_tx_csum(struct net_device *dev, * enough headroom for us to insert 64B status block. */ new_skb = skb_realloc_headroom(skb, sizeof(*status)); - dev_kfree_skb(skb); if (!new_skb) { + dev_kfree_skb_any(skb); dev->stats.tx_dropped++; return NULL; } + dev_consume_skb_any(skb); skb = new_skb; } From patchwork Tue Dec 17 21:02:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Doug Berger X-Patchwork-Id: 1211731 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="IepK1T4e"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 47crHN21hFz9sRh for ; Wed, 18 Dec 2019 08:04:32 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728733AbfLQVEY (ORCPT ); Tue, 17 Dec 2019 16:04:24 -0500 Received: from mail-wm1-f66.google.com ([209.85.128.66]:54915 "EHLO mail-wm1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728399AbfLQVDf (ORCPT ); Tue, 17 Dec 2019 16:03:35 -0500 Received: by mail-wm1-f66.google.com with SMTP id b19so4322671wmj.4; Tue, 17 Dec 2019 13:03:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=3xyP56jfldk/QOafjRLnUwDKDDtqv9xmwev/LMdHDz4=; b=IepK1T4eyRa/Fd+JEJACkzRNKWN1Mi65wb9Z/timiiFdWrYIV4mpLb6KSJFxeO7pSB 0+D8H2z738RcaY6hMbUQdLG4KlneBfkoLKDSwUw/trV5H9rp816xzLJUvzlNWdJ67Z3x myjRFDYiumHaR6otSdbWyiBFRYBaOLm38WVBEMNBgh5LBUG/rbFdR+RcMBVTQ/eEP63w 1+1kb/lhj9wKzHbzMpy2dVerl/Kv5znE91r+3OEamPsJs3p4guhZWDH+jlIUPzP+yg5R wgOS+ynUchrx+dKkoYi4ixxPZk3dRxhh2wue53MIP56XTF5sXzXjejB1CdkV042zNwq9 nq1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=3xyP56jfldk/QOafjRLnUwDKDDtqv9xmwev/LMdHDz4=; b=FkW7sRroOKGJZIzEeg0Eh4ByRq7lfhbxs94qN0XtxpQ8iuEEkLYTd2Kcp/mcZg3DAN 6sqMdjcA0e8lFP4s2cTF0bdHZffxD95AbWt0TZZCLmsjSz5M92sly1EddDcyLJ8IrML9 /MWUY+bNM6F3nJIqJ/mv32zdm3dqKFSTPSpFjKTb1oyYQ00lmPD7PCz37Y6d/fEFSykh uw2LxxiQI82YAcz14pZUlG1IVRDnThdqBvJ1LOC9MqjdJHkZLrgmZd1YkozLltQpc3Eh JlW8lytNgW/a4bE4ffe9rzSWRnmihjIUD9g9oOIo43FbsxH+clmShv/XV1b2q95wqnea /5Vg== X-Gm-Message-State: APjAAAXYCG7m6j7NuFp/SjCt8DczjURKgTtU5SzmCWfuepjFidc2tc+b HWMB3ufE8RIHLRzTW1Ed2fk= X-Google-Smtp-Source: APXvYqx6FXdGu1uMMrx6xqysMukshZBb05oMC7T5qwh/o6DLubYhJW5yLiDondYhhFYgINnWAChviw== X-Received: by 2002:a1c:c919:: with SMTP id f25mr7554275wmb.49.1576616613191; Tue, 17 Dec 2019 13:03:33 -0800 (PST) Received: from stbirv-lnx-3.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i5sm37856wml.31.2019.12.17.13.03.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 17 Dec 2019 13:03:32 -0800 (PST) From: Doug Berger To: "David S. Miller" Cc: Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Doug Berger Subject: [PATCH net-next 8/8] net: bcmgenet: Add software counters to track reallocations Date: Tue, 17 Dec 2019 13:02:29 -0800 Message-Id: <1576616549-39097-9-git-send-email-opendmb@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1576616549-39097-1-git-send-email-opendmb@gmail.com> References: <1576616549-39097-1-git-send-email-opendmb@gmail.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org When inserting the TSB, keep track of how many times we had to do it and if there was a failure in doing so, this helps profile the driver for possibly incorrect headroom settings. Signed-off-by: Doug Berger Reviewed-by: Florian Fainelli --- drivers/net/ethernet/broadcom/genet/bcmgenet.c | 6 ++++++ drivers/net/ethernet/broadcom/genet/bcmgenet.h | 2 ++ 2 files changed, 8 insertions(+) diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c index 0280e76bb60f..e0109b86c054 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c @@ -861,6 +861,9 @@ static const struct bcmgenet_stats bcmgenet_gstrings_stats[] = { STAT_GENET_SOFT_MIB("alloc_rx_buff_failed", mib.alloc_rx_buff_failed), STAT_GENET_SOFT_MIB("rx_dma_failed", mib.rx_dma_failed), STAT_GENET_SOFT_MIB("tx_dma_failed", mib.tx_dma_failed), + STAT_GENET_SOFT_MIB("tx_realloc_tsb", mib.tx_realloc_tsb), + STAT_GENET_SOFT_MIB("tx_realloc_tsb_failed", + mib.tx_realloc_tsb_failed), /* Per TX queues */ STAT_GENET_Q(0), STAT_GENET_Q(1), @@ -1487,6 +1490,7 @@ static void bcmgenet_tx_reclaim_all(struct net_device *dev) static struct sk_buff *bcmgenet_put_tx_csum(struct net_device *dev, struct sk_buff *skb) { + struct bcmgenet_priv *priv = netdev_priv(dev); struct status_64 *status = NULL; struct sk_buff *new_skb; u16 offset; @@ -1501,11 +1505,13 @@ static struct sk_buff *bcmgenet_put_tx_csum(struct net_device *dev, new_skb = skb_realloc_headroom(skb, sizeof(*status)); if (!new_skb) { dev_kfree_skb_any(skb); + priv->mib.tx_realloc_tsb_failed++; dev->stats.tx_dropped++; return NULL; } dev_consume_skb_any(skb); skb = new_skb; + priv->mib.tx_realloc_tsb++; } skb_push(skb, sizeof(*status)); diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.h b/drivers/net/ethernet/broadcom/genet/bcmgenet.h index 11645cccc207..178d000e462f 100644 --- a/drivers/net/ethernet/broadcom/genet/bcmgenet.h +++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.h @@ -144,6 +144,8 @@ struct bcmgenet_mib_counters { u32 alloc_rx_buff_failed; u32 rx_dma_failed; u32 tx_dma_failed; + u32 tx_realloc_tsb; + u32 tx_realloc_tsb_failed; }; #define UMAC_HD_BKP_CTRL 0x004