{"id":807870,"url":"http://patchwork.ozlabs.org/api/patches/807870/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/patch/1504121973-8438-1-git-send-email-f.fainelli@gmail.com/","project":{"id":7,"url":"http://patchwork.ozlabs.org/api/projects/7/?format=json","name":"Linux network development","link_name":"netdev","list_id":"netdev.vger.kernel.org","list_email":"netdev@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1504121973-8438-1-git-send-email-f.fainelli@gmail.com>","list_archive_url":null,"date":"2017-08-30T19:39:33","name":"[net] net: dsa: bcm_sf2: Fix number of CFP entries for BCM7278","commit_ref":null,"pull_url":null,"state":"accepted","archived":true,"hash":"6938886a1fa2f874829accf9dac0263c2ec4b9e1","submitter":{"id":2800,"url":"http://patchwork.ozlabs.org/api/people/2800/?format=json","name":"Florian Fainelli","email":"f.fainelli@gmail.com"},"delegate":{"id":34,"url":"http://patchwork.ozlabs.org/api/users/34/?format=json","username":"davem","first_name":"David","last_name":"Miller","email":"davem@davemloft.net"},"mbox":"http://patchwork.ozlabs.org/project/netdev/patch/1504121973-8438-1-git-send-email-f.fainelli@gmail.com/mbox/","series":[{"id":693,"url":"http://patchwork.ozlabs.org/api/series/693/?format=json","web_url":"http://patchwork.ozlabs.org/project/netdev/list/?series=693","date":"2017-08-30T19:39:33","name":"[net] net: dsa: bcm_sf2: Fix number of CFP entries for BCM7278","version":1,"mbox":"http://patchwork.ozlabs.org/series/693/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/807870/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/807870/checks/","tags":{},"related":[],"headers":{"Return-Path":"<netdev-owner@vger.kernel.org>","X-Original-To":"patchwork-incoming@ozlabs.org","Delivered-To":"patchwork-incoming@ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)","ozlabs.org; dkim=pass (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"iPNhi+WI\"; dkim-atps=neutral"],"Received":["from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xjGFX2Yd6z9sP5\n\tfor <patchwork-incoming@ozlabs.org>;\n\tThu, 31 Aug 2017 05:45:36 +1000 (AEST)","(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1750995AbdH3Tpd (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tWed, 30 Aug 2017 15:45:33 -0400","from mail-wr0-f195.google.com ([209.85.128.195]:37141 \"EHLO\n\tmail-wr0-f195.google.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1750756AbdH3Tpc (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Wed, 30 Aug 2017 15:45:32 -0400","by mail-wr0-f195.google.com with SMTP id k9so1990509wre.4\n\tfor <netdev@vger.kernel.org>; Wed, 30 Aug 2017 12:45:31 -0700 (PDT)","from stb-bld-04.irv.broadcom.com ([192.19.255.250])\n\tby smtp.gmail.com with ESMTPSA id\n\to191sm4187084wmg.5.2017.08.30.12.45.26\n\t(version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128);\n\tWed, 30 Aug 2017 12:45:29 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=gmail.com; s=20161025;\n\th=from:to:cc:subject:date:message-id;\n\tbh=xdu8O/DmTCTRnW8M+O9IbroHzjyvlW1Mhc1gggL75wM=;\n\tb=iPNhi+WIFJ8FOAILcbqec2nACS+dnV7FLdvdSsxYBpxTJdxGEs64lL+Qd/BUcm5y6d\n\t3j8JVbkZr4Az1MRby03+MZi43UVYU9Se6IPTNyZ4QDMlfPyEwEUs7ptUkX74oLQw8Kl/\n\tS8WgYXVE+uFkuqm6BocjblJw1B00Td/w3QYTOPh8CsZDVz0LK8o5RpmivxlUs1xnJ05Z\n\tu1Na+TCyRxwawClE4Iq2v6LjS/i87fPB0jb9wg/lRYUHlNr/3GWHa8fdBr/eDvDoM5sg\n\tcLW8qy9j5v8RG03xyjQHIjmCWiakLrN8qpKNwLEXERa9iyGLHk25LK/psaXjsfADca/u\n\tVk3A==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id;\n\tbh=xdu8O/DmTCTRnW8M+O9IbroHzjyvlW1Mhc1gggL75wM=;\n\tb=AxowIuLy5gCvy4hhX+A4CQeK6ny/PcxKYQo+DnxEW/SDM7z8qapqDkdMp7WLerZjiW\n\taSXSwjluqC1/w1Neamd2SMAv3zlKl/NUfAm+NksjZuJ2BCsTUc+vVEK0c58lswg0wRPF\n\t8NL2Zh+Stl813UvMrDTcDqbtaVibHoLJx0FxOlvZYbmZONGky0BVUvV4tASINXUeRgvC\n\tIh9BcGv+sdpI1wdPXTAwH0SApRpndUBmZrnF7rG9TWSBmnvyuu6KpzQR3/12vZC5v400\n\tzqGk+z7N4F3kVUDRKMY2HiYc9Aj0lZEjiFf/W1LOk4obkOZsBBNJH0TBU8ylSzjqgKs8\n\tgmcw==","X-Gm-Message-State":"AHYfb5iSviZb+YTzKdh3VhwmzG8GA/OcgWq4Ue6jOtdW5JV50M55fegQ\n\tC/WPVOeRyPEwjL02kSg=","X-Received":"by 10.223.199.206 with SMTP id y14mr1594449wrg.173.1504122330737;\n\tWed, 30 Aug 2017 12:45:30 -0700 (PDT)","From":"Florian Fainelli <f.fainelli@gmail.com>","To":"netdev@vger.kernel.org","Cc":"davem@davemloft.net, andrew@lunn.ch, vivien.didelot@savoirfairelinux.com,\n\tFlorian Fainelli <f.fainelli@gmail.com>","Subject":"[PATCH net] net: dsa: bcm_sf2: Fix number of CFP entries for BCM7278","Date":"Wed, 30 Aug 2017 12:39:33 -0700","Message-Id":"<1504121973-8438-1-git-send-email-f.fainelli@gmail.com>","X-Mailer":"git-send-email 1.9.1","Sender":"netdev-owner@vger.kernel.org","Precedence":"bulk","List-ID":"<netdev.vger.kernel.org>","X-Mailing-List":"netdev@vger.kernel.org"},"content":"BCM7278 has only 128 entries while BCM7445 has the full 256 entries set,\nfix that.\n\nFixes: 7318166cacad (\"net: dsa: bcm_sf2: Add support for ethtool::rxnfc\")\nSigned-off-by: Florian Fainelli <f.fainelli@gmail.com>\n---\n drivers/net/dsa/bcm_sf2.c     | 4 ++++\n drivers/net/dsa/bcm_sf2.h     | 1 +\n drivers/net/dsa/bcm_sf2_cfp.c | 8 ++++----\n 3 files changed, 9 insertions(+), 4 deletions(-)","diff":"diff --git a/drivers/net/dsa/bcm_sf2.c b/drivers/net/dsa/bcm_sf2.c\nindex 00416e9f0196..eb220c8327b5 100644\n--- a/drivers/net/dsa/bcm_sf2.c\n+++ b/drivers/net/dsa/bcm_sf2.c\n@@ -1043,6 +1043,7 @@ struct bcm_sf2_of_data {\n \tu32 type;\n \tconst u16 *reg_offsets;\n \tunsigned int core_reg_align;\n+\tunsigned int num_cfp_rules;\n };\n \n /* Register offsets for the SWITCH_REG_* block */\n@@ -1066,6 +1067,7 @@ struct bcm_sf2_of_data {\n \t.type\t\t= BCM7445_DEVICE_ID,\n \t.core_reg_align\t= 0,\n \t.reg_offsets\t= bcm_sf2_7445_reg_offsets,\n+\t.num_cfp_rules\t= 256,\n };\n \n static const u16 bcm_sf2_7278_reg_offsets[] = {\n@@ -1088,6 +1090,7 @@ struct bcm_sf2_of_data {\n \t.type\t\t= BCM7278_DEVICE_ID,\n \t.core_reg_align\t= 1,\n \t.reg_offsets\t= bcm_sf2_7278_reg_offsets,\n+\t.num_cfp_rules\t= 128,\n };\n \n static const struct of_device_id bcm_sf2_of_match[] = {\n@@ -1144,6 +1147,7 @@ static int bcm_sf2_sw_probe(struct platform_device *pdev)\n \tpriv->type = data->type;\n \tpriv->reg_offsets = data->reg_offsets;\n \tpriv->core_reg_align = data->core_reg_align;\n+\tpriv->num_cfp_rules = data->num_cfp_rules;\n \n \t/* Auto-detection using standard registers will not work, so\n \t * provide an indication of what kind of device we are for\ndiff --git a/drivers/net/dsa/bcm_sf2.h b/drivers/net/dsa/bcm_sf2.h\nindex d9c96b281fc0..02c499f9c56b 100644\n--- a/drivers/net/dsa/bcm_sf2.h\n+++ b/drivers/net/dsa/bcm_sf2.h\n@@ -72,6 +72,7 @@ struct bcm_sf2_priv {\n \tu32 \t\t\t\ttype;\n \tconst u16\t\t\t*reg_offsets;\n \tunsigned int\t\t\tcore_reg_align;\n+\tunsigned int\t\t\tnum_cfp_rules;\n \n \t/* spinlock protecting access to the indirect registers */\n \tspinlock_t\t\t\tindir_lock;\ndiff --git a/drivers/net/dsa/bcm_sf2_cfp.c b/drivers/net/dsa/bcm_sf2_cfp.c\nindex 2fb32d67065f..8a1da7e67707 100644\n--- a/drivers/net/dsa/bcm_sf2_cfp.c\n+++ b/drivers/net/dsa/bcm_sf2_cfp.c\n@@ -98,7 +98,7 @@ static inline void bcm_sf2_cfp_rule_addr_set(struct bcm_sf2_priv *priv,\n {\n \tu32 reg;\n \n-\tWARN_ON(addr >= CFP_NUM_RULES);\n+\tWARN_ON(addr >= priv->num_cfp_rules);\n \n \treg = core_readl(priv, CORE_CFP_ACC);\n \treg &= ~(XCESS_ADDR_MASK << XCESS_ADDR_SHIFT);\n@@ -109,7 +109,7 @@ static inline void bcm_sf2_cfp_rule_addr_set(struct bcm_sf2_priv *priv,\n static inline unsigned int bcm_sf2_cfp_rule_size(struct bcm_sf2_priv *priv)\n {\n \t/* Entry #0 is reserved */\n-\treturn CFP_NUM_RULES - 1;\n+\treturn priv->num_cfp_rules - 1;\n }\n \n static int bcm_sf2_cfp_rule_set(struct dsa_switch *ds, int port,\n@@ -523,7 +523,7 @@ static int bcm_sf2_cfp_rule_get_all(struct bcm_sf2_priv *priv,\n \t\tif (!(reg & OP_STR_DONE))\n \t\t\tbreak;\n \n-\t} while (index < CFP_NUM_RULES);\n+\t} while (index < priv->num_cfp_rules);\n \n \t/* Put the TCAM size here */\n \tnfc->data = bcm_sf2_cfp_rule_size(priv);\n@@ -544,7 +544,7 @@ int bcm_sf2_get_rxnfc(struct dsa_switch *ds, int port,\n \tcase ETHTOOL_GRXCLSRLCNT:\n \t\t/* Subtract the default, unusable rule */\n \t\tnfc->rule_cnt = bitmap_weight(priv->cfp.used,\n-\t\t\t\t\t      CFP_NUM_RULES) - 1;\n+\t\t\t\t\t      priv->num_cfp_rules) - 1;\n \t\t/* We support specifying rule locations */\n \t\tnfc->data |= RX_CLS_LOC_SPECIAL;\n \t\tbreak;\n","prefixes":["net"]}