From patchwork Mon Nov 28 11:59:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26672 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609302wrr; Mon, 28 Nov 2022 04:03:31 -0800 (PST) X-Google-Smtp-Source: AA0mqf7kQXUIJeWGFW8VGByoxLA6F5Qwd8G6g97Y7Go6VmffmW3fJfSLNOVGv5Ad3mZJmXVhUp/n X-Received: by 2002:a65:4681:0:b0:464:2135:5f88 with SMTP id h1-20020a654681000000b0046421355f88mr26200952pgr.360.1669637011456; Mon, 28 Nov 2022 04:03:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637011; cv=none; d=google.com; s=arc-20160816; b=mwDf65oyrRsRq3q/EN1xeUtWff4+FsgnwoNvkjNrdZq2in3lw4SG/+jA0Ea/yCNSUM DvL8yatnkw2kinbIFXzkU+j2xZ6BNbXXs1XyqW0Su+hmK8oiTuDLR8y5JptzTkLecefS tZknDW7Hb0JBx9WmHBaYRXt94Wl0sW138wG1pySLYNg3uEPZBpExcNEKW5CqPirf2Tsm c4eO3tZI/x3Mnu0xulPcHmRLVAw4BEuEi++W5brMsgtkvtggsorzEeqvaQH+8t68tNH5 Fx8Z/8Em43DQiV5PwEqq1A66QImWWLf1lEkJCFqhbz2OwYyzsCc4pEWLv5ZE4Rhd/lNO 9tlg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=wz5cAIkCWHlGIbYNDx7pvp/8QW3SgP50cuHqW7/MQPE=; b=t7QNvW+bRzcaqjgY16MJ8XMt38D1WZbCeyda74xU49gP0tXXCwKJtnx3L6WRskFGoD QfM5/MjV81VWVdcQq59AaeVKOo/+XGR/MmqussBvN8BmBDLHepiYr5Y8mdv+YyCT3WP6 xudKLZCb+IewIjWXAtePFwHrh0Dl2XirQ4Cgr2QH74NA4sVAcQTZj/36xdIGNhCE+ANu +n9WbeDDDsuS/zVGF5q6Buqop7nVQCA+2oML3AV1QhdjFPUWoLZ6Xpc47n8bVir1ggpl pZLAaeOSceoR2xsNPPUwJv/CFupivBpwU059GTuXNWsdlNz/VSmId68pvvrF/qJ8wOs7 9v5g== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u190-20020a6385c7000000b00477f9fad404si7142345pgd.314.2022.11.28.04.03.07; Mon, 28 Nov 2022 04:03:31 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231451AbiK1MBE (ORCPT + 99 others); Mon, 28 Nov 2022 07:01:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36136 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231354AbiK1MAQ (ORCPT ); Mon, 28 Nov 2022 07:00:16 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 717FB18B3F for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnr-0003n5-NL; Mon, 28 Nov 2022 13:00:03 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnp-000o8W-Oe; Mon, 28 Nov 2022 13:00:02 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00Gzcb-Md; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 01/26] net: dsa: microchip: add stats64 support for ksz8 series of switches Date: Mon, 28 Nov 2022 12:59:33 +0100 Message-Id: <20221128115958.4049431-2-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741298652987931?= X-GMAIL-MSGID: =?utf-8?q?1750741298652987931?= Add stats64 support for ksz8xxx series of switches. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz_common.c | 87 ++++++++++++++++++++++++++ drivers/net/dsa/microchip/ksz_common.h | 1 + 2 files changed, 88 insertions(+) diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index f39b041765fb..423f944cc34c 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -70,6 +70,43 @@ struct ksz_stats_raw { u64 tx_discards; }; +struct ksz88xx_stats_raw { + u64 rx; + u64 rx_hi; + u64 rx_undersize; + u64 rx_fragments; + u64 rx_oversize; + u64 rx_jabbers; + u64 rx_symbol_err; + u64 rx_crc_err; + u64 rx_align_err; + u64 rx_mac_ctrl; + u64 rx_pause; + u64 rx_bcast; + u64 rx_mcast; + u64 rx_ucast; + u64 rx_64_or_less; + u64 rx_65_127; + u64 rx_128_255; + u64 rx_256_511; + u64 rx_512_1023; + u64 rx_1024_1522; + u64 tx; + u64 tx_hi; + u64 tx_late_col; + u64 tx_pause; + u64 tx_bcast; + u64 tx_mcast; + u64 tx_ucast; + u64 tx_deferred; + u64 tx_total_col; + u64 tx_exc_col; + u64 tx_single_col; + u64 tx_mult_col; + u64 rx_discards; + u64 tx_discards; +}; + static const struct ksz_mib_names ksz88xx_mib_names[] = { { 0x00, "rx" }, { 0x01, "rx_hi" }, @@ -156,6 +193,7 @@ static const struct ksz_dev_ops ksz8_dev_ops = { .w_phy = ksz8_w_phy, .r_mib_cnt = ksz8_r_mib_cnt, .r_mib_pkt = ksz8_r_mib_pkt, + .r_mib_stat64 = ksz88xx_r_mib_stats64, .freeze_mib = ksz8_freeze_mib, .port_init_cnt = ksz8_port_init_cnt, .fdb_dump = ksz8_fdb_dump, @@ -1583,6 +1621,55 @@ void ksz_r_mib_stats64(struct ksz_device *dev, int port) spin_unlock(&mib->stats64_lock); } +void ksz88xx_r_mib_stats64(struct ksz_device *dev, int port) +{ + struct ethtool_pause_stats *pstats; + struct rtnl_link_stats64 *stats; + struct ksz88xx_stats_raw *raw; + struct ksz_port_mib *mib; + + mib = &dev->ports[port].mib; + stats = &mib->stats64; + pstats = &mib->pause_stats; + raw = (struct ksz88xx_stats_raw *)mib->counters; + + spin_lock(&mib->stats64_lock); + + stats->rx_packets = raw->rx_bcast + raw->rx_mcast + raw->rx_ucast + + raw->rx_pause; + stats->tx_packets = raw->tx_bcast + raw->tx_mcast + raw->tx_ucast + + raw->tx_pause; + + /* HW counters are counting bytes + FCS which is not acceptable + * for rtnl_link_stats64 interface + */ + stats->rx_bytes = raw->rx + raw->rx_hi - stats->rx_packets * ETH_FCS_LEN; + stats->tx_bytes = raw->tx + raw->tx_hi - stats->tx_packets * ETH_FCS_LEN; + + stats->rx_length_errors = raw->rx_undersize + raw->rx_fragments + + raw->rx_oversize; + + stats->rx_crc_errors = raw->rx_crc_err; + stats->rx_frame_errors = raw->rx_align_err; + stats->rx_dropped = raw->rx_discards; + stats->rx_errors = stats->rx_length_errors + stats->rx_crc_errors + + stats->rx_frame_errors + stats->rx_dropped; + + stats->tx_window_errors = raw->tx_late_col; + stats->tx_fifo_errors = raw->tx_discards; + stats->tx_aborted_errors = raw->tx_exc_col; + stats->tx_errors = stats->tx_window_errors + stats->tx_fifo_errors + + stats->tx_aborted_errors; + + stats->multicast = raw->rx_mcast; + stats->collisions = raw->tx_total_col; + + pstats->tx_pause_frames = raw->tx_pause; + pstats->rx_pause_frames = raw->rx_pause; + + spin_unlock(&mib->stats64_lock); +} + static void ksz_get_stats64(struct dsa_switch *ds, int port, struct rtnl_link_stats64 *s) { diff --git a/drivers/net/dsa/microchip/ksz_common.h b/drivers/net/dsa/microchip/ksz_common.h index cb27f5a180c7..055d61ff3fb8 100644 --- a/drivers/net/dsa/microchip/ksz_common.h +++ b/drivers/net/dsa/microchip/ksz_common.h @@ -345,6 +345,7 @@ void ksz_switch_remove(struct ksz_device *dev); void ksz_init_mib_timer(struct ksz_device *dev); void ksz_r_mib_stats64(struct ksz_device *dev, int port); +void ksz88xx_r_mib_stats64(struct ksz_device *dev, int port); void ksz_port_stp_state_set(struct dsa_switch *ds, int port, u8 state); bool ksz_get_gbit(struct ksz_device *dev, int port); phy_interface_t ksz_get_xmii(struct ksz_device *dev, int port, bool gbit); From patchwork Mon Nov 28 11:59:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26661 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5608473wrr; Mon, 28 Nov 2022 04:02:31 -0800 (PST) X-Google-Smtp-Source: AA0mqf7CoCrc4erNd92Ifp12TpBn93PfVEHetLEy8JGBDlmOEDhVFcZK36I3geARdmWR8b9wk0Qq X-Received: by 2002:a17:902:ee55:b0:176:a16a:417d with SMTP id 21-20020a170902ee5500b00176a16a417dmr34369068plo.46.1669636951389; Mon, 28 Nov 2022 04:02:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669636951; cv=none; d=google.com; s=arc-20160816; b=tRK+hoSRh/wcTbX7sEyW+eXkoJBfeczC+UdUaLJwM3MkZDAieZ/QE5KNZ6uttf8sre I+ziWcNRUlWR9+lUoQ0wAEkssVvVGh0pGNA7YBumyP7viRdgUtNG2zNriHDFBzWiz3DR eJ/FYVD9HOJKmPZWxxMMhnmrUgLMVG8pJyAY0ZV5STc23J1borGin7SJhYBp0xHXqeSp qawP5xxZz0LT26DjBCswMqGsdA+CZOEREbICu3X2K8Om8Iu5Hf8euAxTwasOUUZlQCaq wxZPMYkZcetk4kWEJLkOpZQLyHklP9aUIM9OFLCuMYubBcB9fCV8MUUnq7hfeCtp5u2O fdjw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=V7A/yZarYQrJDVgs5eaUveDaSQ6jZ9XmNPmfNl5ykjs=; b=FSkS8HiGdd32xD6dZQcMZfsbu/Rzy7Gf9AjG3heqy4gs21RZ1jsb1MXT8dArF1lTQU o9W+sxztMf5BRx2yZfIsCAG0ySkSEJfUS07EoBjntC3135MlP6gJzTMylH5rlDGAnK5L 3JplLjZ64Mzc13uuJwLQ1RMfex37zTG0lN5SrOlp/60h5SP/3+tyraPvJqGKEWdrVKrq CIFetVD917yuyKnICjlZdBLMngpVYhG/bjMtzryrkem9e9njFlO5HWZKc/jQau2hHns+ EOjSePb+OOrpdVr64f0loEdOPa0PpHFsulLFNP+TVaEYDkPy/nDIgvwJ66nXpzQxMETo ObnQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ck5-20020a17090afe0500b00218ed5d3fc5si13601461pjb.35.2022.11.28.04.02.16; Mon, 28 Nov 2022 04:02:31 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230140AbiK1MAZ (ORCPT + 99 others); Mon, 28 Nov 2022 07:00:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36078 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229945AbiK1MAP (ORCPT ); Mon, 28 Nov 2022 07:00:15 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7163418B36 for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnr-0003n2-NM; Mon, 28 Nov 2022 13:00:03 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnp-000o8S-IO; Mon, 28 Nov 2022 13:00:02 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00Gzck-NJ; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 02/26] net: dsa: microchip: ksz8: ksz8_fdb_dump: fix port validation and VID information Date: Mon, 28 Nov 2022 12:59:34 +0100 Message-Id: <20221128115958.4049431-3-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741236055750666?= X-GMAIL-MSGID: =?utf-8?q?1750741236055750666?= The ksz8_fdb_dump() has multiple issues: - struct alu_struct was used only to store MAC address. - port value was misinterpreted as a bit mask - Filter ID was attempted to use as VID. FID can be used to get VID, but currently it is not supported. - by the attempt to use FID, was used not initialized alu.fid... Before this patch, "bridge fdb" command was providing random results, which are fixed by this patch: - random vid information - assignment to wrong port Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 003b0ac2854c..e0530bc3bec0 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -958,15 +958,14 @@ int ksz8_fdb_dump(struct ksz_device *dev, int port, u16 entries = 0; u8 timestamp = 0; u8 fid; - u8 member; - struct alu_struct alu; + u8 src_port; + u8 mac[ETH_ALEN]; do { - alu.is_static = false; - ret = ksz8_r_dyn_mac_table(dev, i, alu.mac, &fid, &member, + ret = ksz8_r_dyn_mac_table(dev, i, mac, &fid, &src_port, ×tamp, &entries); - if (!ret && (member & BIT(port))) { - ret = cb(alu.mac, alu.fid, alu.is_static, data); + if (!ret && port == src_port) { + ret = cb(mac, 0, false, data); if (ret) break; } From patchwork Mon Nov 28 11:59:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26669 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609136wrr; Mon, 28 Nov 2022 04:03:19 -0800 (PST) X-Google-Smtp-Source: AA0mqf7rywjE1Yg5QnV+jGKjFaIeiu4h1nq+axvTta9a61s/YkQYTY2Yx5ZBUoWS+o8waWxwW/nl X-Received: by 2002:a17:90b:2810:b0:213:ecb6:b690 with SMTP id qb16-20020a17090b281000b00213ecb6b690mr60555357pjb.244.1669636999595; Mon, 28 Nov 2022 04:03:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669636999; cv=none; d=google.com; s=arc-20160816; b=u1Jti5Q3xrLs1cRufit6rGkuB/PSFGJxU1+Z+cOh+jHaqFEtrTpcK6f51aXJ0BSXe8 3TxlW8fzbml+vCzVEHSs7RLJ1CALjMIVosKL0rY6JgT5yRpcBmqkgux/BUwDVmf+fxvh VytDoQ9KikTeZ3C9DGELT8VxmgX14fOgNLnpGyyiLMIAN7+0wQkp/GTJoqpr/NhMRV9W 2siY+2okJrhXFmYMpZgrhEWKvIFsPIetfN7Z62ArG3+utqajCW8yOwsu0XGDfI+6a5AN 67QmpEPQT0DmoG3aYvCgmSigSvt+BoRbNt7Am2qu63MK6uNFZAiiWcl+aXK2hbzj5RIP 4H+g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=MAYrSar+Nizyi1MeNokHxCy5tEfQHhGXL1AXOLemQw8=; b=Zjfuvp4zTUzsA212Ez7/Nag/v0OM+t04V+aBUiiZKy6C5Rp46HJ2cABiI9saq6AFZM /dMtcYxIQ51nl2p7XxmKzZW41aJCvLExisNzhP9hwyaqO9ZMeaXOGEo2B7in46FEnOth Fq8OlMRNsni3xjdshoHGg2Z5moYnktONcH2znjDcd9ezMdXWVSwD4nlsb1E/0rPLZQSk U0Ljg2SaEOkoMq5lwqMmr2Wvm3dqMNO8JOVegKpvzHoBuV2bNOr/rCcmW7YiSMqE0CFz wWR1kNHqbAX3gbLZe4iD69ymjjBP3qVcH6i9EA7wbDYDewCPQfqaJ7weBMKkU/ioKqtp 8LKg== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v10-20020a63f84a000000b00476c46ff6e9si11191587pgj.572.2022.11.28.04.02.59; Mon, 28 Nov 2022 04:03:19 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231584AbiK1MBP (ORCPT + 99 others); Mon, 28 Nov 2022 07:01:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36152 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231357AbiK1MAQ (ORCPT ); Mon, 28 Nov 2022 07:00:16 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 713A118B24 for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnt-0003rf-NS; Mon, 28 Nov 2022 13:00:05 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnr-000o9n-Rw; Mon, 28 Nov 2022 13:00:04 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00Gzct-Nq; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 03/26] net: dsa: microchip: ksz8: ksz8_fdb_dump: fix not complete fdb extraction Date: Mon, 28 Nov 2022 12:59:35 +0100 Message-Id: <20221128115958.4049431-4-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741286361561610?= X-GMAIL-MSGID: =?utf-8?q?1750741286361561610?= Current ksz8_fdb_dump() is able to extract max 249 entries on the ksz8863/ksz8873 series of switches. This happened due to wrong bit mask and offset calculation. With this patch, we will be able to extract all possible 1024 entries. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz_common.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index 423f944cc34c..43d94131417b 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -398,10 +398,10 @@ static const u32 ksz8863_masks[] = { [STATIC_MAC_TABLE_FID] = GENMASK(29, 26), [STATIC_MAC_TABLE_OVERRIDE] = BIT(20), [STATIC_MAC_TABLE_FWD_PORTS] = GENMASK(18, 16), - [DYNAMIC_MAC_TABLE_ENTRIES_H] = GENMASK(5, 0), + [DYNAMIC_MAC_TABLE_ENTRIES_H] = GENMASK(1, 0), [DYNAMIC_MAC_TABLE_MAC_EMPTY] = BIT(7), [DYNAMIC_MAC_TABLE_NOT_READY] = BIT(7), - [DYNAMIC_MAC_TABLE_ENTRIES] = GENMASK(31, 28), + [DYNAMIC_MAC_TABLE_ENTRIES] = GENMASK(31, 24), [DYNAMIC_MAC_TABLE_FID] = GENMASK(19, 16), [DYNAMIC_MAC_TABLE_SRC_PORT] = GENMASK(21, 20), [DYNAMIC_MAC_TABLE_TIMESTAMP] = GENMASK(23, 22), @@ -411,7 +411,7 @@ static u8 ksz8863_shifts[] = { [VLAN_TABLE_MEMBERSHIP_S] = 16, [STATIC_MAC_FWD_PORTS] = 16, [STATIC_MAC_FID] = 22, - [DYNAMIC_MAC_ENTRIES_H] = 3, + [DYNAMIC_MAC_ENTRIES_H] = 8, [DYNAMIC_MAC_ENTRIES] = 24, [DYNAMIC_MAC_FID] = 16, [DYNAMIC_MAC_TIMESTAMP] = 24, From patchwork Mon Nov 28 11:59:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26686 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609637wrr; Mon, 28 Nov 2022 04:03:56 -0800 (PST) X-Google-Smtp-Source: AA0mqf5LwM3NkKgVIS9yx7YM19QFCtZITO8u0oKJy/ahSEFjDjCbxw8lAnPO+m26WfnZMr/AVK/z X-Received: by 2002:a17:90a:3d4c:b0:219:3db6:f194 with SMTP id o12-20020a17090a3d4c00b002193db6f194mr3280714pjf.27.1669637036442; Mon, 28 Nov 2022 04:03:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637036; cv=none; d=google.com; s=arc-20160816; b=Z6JYq2ZEk5SVdYhqPJO4qRHF5G02rNPfHf1QRw82+SYEuExiGpWBR0yBoOxsrocPEC YmXCcUV4PK9A2YQpBOtOPw4Qi/LZo2SGndy/q5Vm4YfJLnejXjNLdxWu3OLfLyImhYX9 cynmRtvv+acFMOobe40i6CmkssSoTugCHUlXA1GsCGQnNfNPKbq5DnE6Cb7+Qdw+c1Wx tjg02kFb4W+LFyfupaaBj/pk7k0Mq496HuDZzzwHU5/Wngth4Lbz1QirRbxuo5PW715I 8M4MFHmBMLL3vmleQCgx7KiigmKVQsDLDjihF5c/zYS3Qzuowoeu7PGpm9u3fK5rU0CE HQOA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=65K94Qrxd/dIx7ptHSVvmdoJhAlxcdW1EVUGPQPbgFU=; b=0ebd6zbFY9qVo1fEpWMpsMejRSlq20BX5jIlX/3v1c9n23FGNPq74lfsvX4qBsThTy WFMycm7YaU40N/qTqgT+hwVCsgUCC9PgSyQin4//PrMA3WX12sLxoyYPXchPJ+vSY4KW XYJj4Xb5BaYs++EtDMxNnPaO1foy4LaaHT+wmAguxNJ9VSmio9OmXMFKVHPabLzWX+fA Jmi5h7GivXb6ruTPelmev2Ncy0JAflzb8YcKfr6RqP1EYZ1i7RNCxR7mrL8py7FBT95I DWa28WItICsY6b/5f+Qkd7FInNfvbu875pGHxc4Jj8Z5kuUq5v99Cl9leIchkuXz/w8P aXDA== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j72-20020a638b4b000000b0046ef006f51dsi12425821pge.425.2022.11.28.04.03.38; Mon, 28 Nov 2022 04:03:56 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231538AbiK1MC2 (ORCPT + 99 others); Mon, 28 Nov 2022 07:02:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231415AbiK1MAT (ORCPT ); Mon, 28 Nov 2022 07:00:19 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3FF1F19002 for ; Mon, 28 Nov 2022 04:00:18 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcns-0003nH-Bh; Mon, 28 Nov 2022 13:00:04 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnq-000o90-KV; Mon, 28 Nov 2022 13:00:03 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00Gzd2-OL; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 04/26] net: dsa: microchip: ksz8: ksz8_fdb_dump: fix time stamp extraction Date: Mon, 28 Nov 2022 12:59:36 +0100 Message-Id: <20221128115958.4049431-5-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741324708303545?= X-GMAIL-MSGID: =?utf-8?q?1750741324708303545?= FDB fix time stamp extraction. We are using wrong offset, so we will get not a time stamp. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index 43d94131417b..7c28dc1edaa1 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -414,7 +414,7 @@ static u8 ksz8863_shifts[] = { [DYNAMIC_MAC_ENTRIES_H] = 8, [DYNAMIC_MAC_ENTRIES] = 24, [DYNAMIC_MAC_FID] = 16, - [DYNAMIC_MAC_TIMESTAMP] = 24, + [DYNAMIC_MAC_TIMESTAMP] = 22, [DYNAMIC_MAC_SRC_PORT] = 20, }; From patchwork Mon Nov 28 11:59:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26684 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609641wrr; Mon, 28 Nov 2022 04:03:56 -0800 (PST) X-Google-Smtp-Source: AA0mqf6Oej3uWWURXsOlLI0vvwZjkHiW0YWrXihVW2o1+q3WK8ZszWNQHl2Pt9nRj2ot41tqTMGu X-Received: by 2002:a17:906:c2d8:b0:7ba:5983:ebb5 with SMTP id ch24-20020a170906c2d800b007ba5983ebb5mr20693019ejb.646.1669637036741; Mon, 28 Nov 2022 04:03:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637036; cv=none; d=google.com; s=arc-20160816; b=uU+U2I4kLeKXeZ1Be3z/II3SE41hMqcRm2oEIXCPxajK2pHK4+o7tRJSddYZqSrtWK VqnhHtdxNtNqQfJ6tZZmisA03ZDRFlLo3L/1UCB3aWELJcG8z3KvOfJyoSUSxWULu0DX EUWHg9Deer3IP7qlWmDpzVQaG2OiM1J6n1+7i9LDlyoJCBLPiwKsdzh8IEL+eQlmZKNJ soFAdomlUFtfdOnwzGvOpvD3fMRG0egh7aQMqobYqTGGF2BNWv+2ApwCIAzum2ekm6rR rUveGRW09h1wNc1+igiljYguM75I8vU3vqo9YagCtQizi5kpc4OVqa6ffSJObDyAllut 2e0Q== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=+KlP2eHyJmoGOpTygtwLYPIoXnCTIyPzdyNnxsG9omA=; b=PkAMkpfcQx8fZAJGME7Lh4RYErKbgQCFc5TAG7Tdz2Y96k3ctvxxdqMmhVZanCB10e AG1j1TEL2jWf1aBLyASAzTLDTU189/+ner0xaonFvMelB+1sL8ALGi8u8kHhNfryiCKM by33a0DQPxVyRs+lf87VnF7i8HxZ4Y6OxeO+W8Ms5ElYFku5XPpSRDQrfUSC3zh52Ob7 PHU4znO0F3u5XYM3uD7Spi/L/FesJNCbtL9FUij0HuhIqbOD9/hi0fxaKIfTLgifGDCR iY1NKtFqQfT6AC088zpq/yvDEaURVlexbfSvd0WJBufzqrcwFT44xW60qJhHRycXjIC7 cyRw== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id qw8-20020a1709066a0800b00787bacce740si9581003ejc.537.2022.11.28.04.03.23; Mon, 28 Nov 2022 04:03:56 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231726AbiK1MCE (ORCPT + 99 others); Mon, 28 Nov 2022 07:02:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36214 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231395AbiK1MAS (ORCPT ); Mon, 28 Nov 2022 07:00:18 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7218118B31 for ; Mon, 28 Nov 2022 04:00:17 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnr-0003n1-NO; Mon, 28 Nov 2022 13:00:03 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnp-000o8M-AM; Mon, 28 Nov 2022 13:00:02 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00GzdB-Op; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 05/26] net: dsa: microchip: ksz8: ksz8_fdb_dump: do not extract ghost entry from empty table Date: Mon, 28 Nov 2022 12:59:37 +0100 Message-Id: <20221128115958.4049431-6-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741325428790719?= X-GMAIL-MSGID: =?utf-8?q?1750741325428790719?= If the dynamic MAC table is empty, we will still extract one outdated entry. Fix it by using correct bit offset. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index 7c28dc1edaa1..afb846c18b57 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -399,7 +399,7 @@ static const u32 ksz8863_masks[] = { [STATIC_MAC_TABLE_OVERRIDE] = BIT(20), [STATIC_MAC_TABLE_FWD_PORTS] = GENMASK(18, 16), [DYNAMIC_MAC_TABLE_ENTRIES_H] = GENMASK(1, 0), - [DYNAMIC_MAC_TABLE_MAC_EMPTY] = BIT(7), + [DYNAMIC_MAC_TABLE_MAC_EMPTY] = BIT(2), [DYNAMIC_MAC_TABLE_NOT_READY] = BIT(7), [DYNAMIC_MAC_TABLE_ENTRIES] = GENMASK(31, 24), [DYNAMIC_MAC_TABLE_FID] = GENMASK(19, 16), From patchwork Mon Nov 28 11:59:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26674 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609415wrr; Mon, 28 Nov 2022 04:03:41 -0800 (PST) X-Google-Smtp-Source: AA0mqf5W5207OPr0UwYJ8MAoQd/yrjU2cXj7MXH6rZs3mOA6XWvrTDKzue3gu7ls9GyrEal3rT3H X-Received: by 2002:a17:90a:fc92:b0:219:1545:bc57 with SMTP id ci18-20020a17090afc9200b002191545bc57mr14287150pjb.133.1669637020949; Mon, 28 Nov 2022 04:03:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637020; cv=none; d=google.com; s=arc-20160816; b=a65azrBdMcNJ3R9oeMyAKbF0T7s9EZX+z7E57qEIOXXfmuvh9bwzmaNHb2iy353ZJX h6T+uoNaz2HITWKrq0Z9pPXlpO00030JpYDRUhEcvmXUI/PeX/n8uskBSpRUKFjvUpvy zQAulUYZRuhG4kz/mctbFm3DzNSilz/ibbum4ngkF2sn/bEGlTUuEFQz8rfvsgZJnqV4 mKwn2F92J+djU5rF4IXql051DeLq6EJvo2wS2PqpLoDvoHIJSBOTwNCLkda/Hdll44vX aO8lzi6I1BzdRjufONJLJrmezi2kix4u9o2cDK3mF6QZjrGrcOSpGzLufvbK2AbV3AjA 4rpg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=mSlEkrNV9wThKXaUJVtCKzm4VmhNCK2V7z+eEYl1onY=; b=vy8iZpsNEy8ztjnmWf2yblvkeORtf0Ru41/EqqK3ufwyTxNPzxbedd+C+8kn/TiMwJ VHdxIHQwM6UzXZ6p/tT+JhyG5jK47HT/gcNEQXko/dhwpulgO30xEzUspKC+Xo3BoHYi ZUffO07tU7GqY5U59O5fizGZvz0f+8tZEqmHshBPV74N3T0JStvgNUJMGX/JzJphVFYi xP+GM9DilB4hc+/gt2u0MCoh1yEdan5jEFCtD99yfiiaMs+z5Bbb3KAj9MxhCq8Hk0mB vfJQJlbxA9hW4IwZsMJUGEaE/7Q6DQK/X+ge4xtg6hmPlOWdFaYdfvBD8Ex+SlJBssHZ I6+Q== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t195-20020a635fcc000000b0046f73d846f3si12461633pgb.441.2022.11.28.04.03.19; Mon, 28 Nov 2022 04:03:40 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231676AbiK1MBv (ORCPT + 99 others); Mon, 28 Nov 2022 07:01:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36106 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231370AbiK1MAR (ORCPT ); Mon, 28 Nov 2022 07:00:17 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A547A18B0C for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnr-0003mX-NN; Mon, 28 Nov 2022 13:00:04 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnp-000o8I-61; Mon, 28 Nov 2022 13:00:01 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00GzdK-PK; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 06/26] net: dsa: microchip: ksz8863_smi: fix bulk access Date: Mon, 28 Nov 2022 12:59:38 +0100 Message-Id: <20221128115958.4049431-7-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741308810420769?= X-GMAIL-MSGID: =?utf-8?q?1750741308810420769?= Current regmap bulk access is broken, resulting to wrong reads/writes if ksz_read64/ksz_write64 functions are used. Mostly this issue was visible by using ksz8_fdb_dump(), which returned corrupt MAC address. The reason is that regmap was configured to have max_raw_read/write, even if ksz8863_mdio_read/write functions are able to handle unlimited read/write accesses. On ksz_read64 function we are using multiple 32bit accesses by incrementing each access by 1 instead of 4. Resulting buffer had 01234567.12345678 instead of 01234567.89abcdef. We have multiple ways to fix it: - enable 4 byte alignment for 32bit accesses. Since the HW do not have this requirement. It will break driver. - disable max_raw_* limit. This patch is removing max_raw_* limit for regmap accesses in ksz8863_smi. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8863_smi.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8863_smi.c b/drivers/net/dsa/microchip/ksz8863_smi.c index 2f4623f3bd85..2516c9db7fec 100644 --- a/drivers/net/dsa/microchip/ksz8863_smi.c +++ b/drivers/net/dsa/microchip/ksz8863_smi.c @@ -70,6 +70,7 @@ static int ksz8863_mdio_write(void *ctx, const void *data, size_t count) tmp, val[i]); if (ret < 0) goto out; + } out: @@ -82,22 +83,16 @@ static const struct regmap_bus regmap_smi[] = { { .read = ksz8863_mdio_read, .write = ksz8863_mdio_write, - .max_raw_read = 1, - .max_raw_write = 1, }, { .read = ksz8863_mdio_read, .write = ksz8863_mdio_write, .val_format_endian_default = REGMAP_ENDIAN_BIG, - .max_raw_read = 2, - .max_raw_write = 2, }, { .read = ksz8863_mdio_read, .write = ksz8863_mdio_write, .val_format_endian_default = REGMAP_ENDIAN_BIG, - .max_raw_read = 4, - .max_raw_write = 4, } }; @@ -108,7 +103,6 @@ static const struct regmap_config ksz8863_regmap_config[] = { .pad_bits = 24, .val_bits = 8, .cache_type = REGCACHE_NONE, - .use_single_read = 1, .lock = ksz_regmap_lock, .unlock = ksz_regmap_unlock, }, @@ -118,7 +112,6 @@ static const struct regmap_config ksz8863_regmap_config[] = { .pad_bits = 24, .val_bits = 16, .cache_type = REGCACHE_NONE, - .use_single_read = 1, .lock = ksz_regmap_lock, .unlock = ksz_regmap_unlock, }, @@ -128,7 +121,6 @@ static const struct regmap_config ksz8863_regmap_config[] = { .pad_bits = 24, .val_bits = 32, .cache_type = REGCACHE_NONE, - .use_single_read = 1, .lock = ksz_regmap_lock, .unlock = ksz_regmap_unlock, } From patchwork Mon Nov 28 11:59:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26659 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5608407wrr; Mon, 28 Nov 2022 04:02:28 -0800 (PST) X-Google-Smtp-Source: AA0mqf6Y7WaJAx8zNLGYhfsPr9Vbzm4UIfWEmlDdij3756xJ7zbF0vS9Qrt7y0SXfHGvFzbsAUnH X-Received: by 2002:a17:90a:1bc2:b0:218:8bdb:de3f with SMTP id r2-20020a17090a1bc200b002188bdbde3fmr46348543pjr.225.1669636947616; Mon, 28 Nov 2022 04:02:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669636947; cv=none; d=google.com; s=arc-20160816; b=AIqiMqyux0RjjPuOiyAEJuixoS/XuGiC+UNmQEYs6jYVk5FdmBTJRumP/GpjmoLJc/ 8f30P3AoLBr+NsuqSH1hruqpPRBT1POy2ZwEeOdUi27P9CGHhY9MjPjRO817oUx3qRwZ Bt5qA+svnr/huI5qFUGjXc2u4BzhfYIbTbshZwwqLApyzkaUYqULLsobV60tHWUJU10q vvaKtq4RpHkKs/4c0QIYbr63t5e4C3l1G5RJc1OiJ1dSr2SXs64tTKTBBD6lurjkmope OXscDGjWMMjg2w/1pJP4EAzYQM9nC/q6aVedJKgIH8ako6BPQVkfi8QofuvsAZe2MDKE TySw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=8GSca5N7QBz06RTMCvhMH+mry6laAnAxGX+5EuDybE4=; b=cg6bjTMnjIkM86fL5jTDOST+4xd8fmBsaBIZa99RDWkgeKCaaGMv15VKsNtsx/dk/e st5Tzc7XzVAgcwP5sLJvzKXNoDDZqusvhJE78duh/oZ7I9HNZ2SOVZ1ININXb2BuNB5c vhQ9CQWhRN9a4v7LrQr7R4Hq+deBZrrIsehZLVRLxaUx815ccALj3Pnzo2EJpFcJyWG8 PAqYQSFh+xdsm0h5ckGaAkUxNbftMCyourm8gkgdHKbi/ckHb8zJ9DxLTMykXJ4xyWFB mMalIh+hFf65MnKED5sS3E2DA+RTETC4Tg85moZsXwpj6Tr8gcEVhQuBXTwTQaO2rMYH vp2A== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n190-20020a6340c7000000b00473d2108706si11969312pga.199.2022.11.28.04.02.12; Mon, 28 Nov 2022 04:02:27 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231393AbiK1MAS (ORCPT + 99 others); Mon, 28 Nov 2022 07:00:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36076 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230210AbiK1MAP (ORCPT ); Mon, 28 Nov 2022 07:00:15 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6FED6186E2 for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnr-0003lw-NM; Mon, 28 Nov 2022 13:00:03 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcno-000o8D-T4; Mon, 28 Nov 2022 13:00:01 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00GzdT-Pq; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 07/26] net: dsa: microchip: ksz8_r_dyn_mac_table(): remove timestamp support Date: Mon, 28 Nov 2022 12:59:39 +0100 Message-Id: <20221128115958.4049431-8-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741231848309492?= X-GMAIL-MSGID: =?utf-8?q?1750741231848309492?= We do not use FDB timestamps. So, drop it. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8.h | 2 +- drivers/net/dsa/microchip/ksz8795.c | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8.h b/drivers/net/dsa/microchip/ksz8.h index ea05abfbd51d..ad8e69051347 100644 --- a/drivers/net/dsa/microchip/ksz8.h +++ b/drivers/net/dsa/microchip/ksz8.h @@ -20,7 +20,7 @@ void ksz8_port_setup(struct ksz_device *dev, int port, bool cpu_port); int ksz8_r_phy(struct ksz_device *dev, u16 phy, u16 reg, u16 *val); int ksz8_w_phy(struct ksz_device *dev, u16 phy, u16 reg, u16 val); int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, - u8 *fid, u8 *src_port, u8 *timestamp, u16 *entries); + u8 *fid, u8 *src_port, u16 *entries); int ksz8_r_sta_mac_table(struct ksz_device *dev, u16 addr, struct alu_struct *alu); void ksz8_w_sta_mac_table(struct ksz_device *dev, u16 addr, diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index e0530bc3bec0..d0cfe74d5b13 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -395,7 +395,7 @@ static int ksz8_valid_dyn_entry(struct ksz_device *dev, u8 *data) } int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, - u8 *fid, u8 *src_port, u8 *timestamp, u16 *entries) + u8 *fid, u8 *src_port, u16 *entries) { u32 data_hi, data_lo; const u8 *shifts; @@ -440,8 +440,6 @@ int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, shifts[DYNAMIC_MAC_FID]; *src_port = (data_hi & masks[DYNAMIC_MAC_TABLE_SRC_PORT]) >> shifts[DYNAMIC_MAC_SRC_PORT]; - *timestamp = (data_hi & masks[DYNAMIC_MAC_TABLE_TIMESTAMP]) >> - shifts[DYNAMIC_MAC_TIMESTAMP]; mac_addr[5] = (u8)data_lo; mac_addr[4] = (u8)(data_lo >> 8); @@ -956,14 +954,13 @@ int ksz8_fdb_dump(struct ksz_device *dev, int port, int ret = 0; u16 i = 0; u16 entries = 0; - u8 timestamp = 0; u8 fid; u8 src_port; u8 mac[ETH_ALEN]; do { ret = ksz8_r_dyn_mac_table(dev, i, mac, &fid, &src_port, - ×tamp, &entries); + &entries); if (!ret && port == src_port) { ret = cb(mac, 0, false, data); if (ret) From patchwork Mon Nov 28 11:59:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26660 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5608410wrr; Mon, 28 Nov 2022 04:02:28 -0800 (PST) X-Google-Smtp-Source: AA0mqf54RD+w7x8b8GUe7vKeN3k/AcbXatV4mRQHJKpOje7b5Nd/WmwBbnX5LPWHFfL8+OCtX1N4 X-Received: by 2002:a65:694e:0:b0:474:6749:407d with SMTP id w14-20020a65694e000000b004746749407dmr26078376pgq.425.1669636947897; Mon, 28 Nov 2022 04:02:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669636947; cv=none; d=google.com; s=arc-20160816; b=ViNRjd0FAFCl1Tzz2AajqW/rGVAywNzobJ/Awz7JsSE3H8os3wPINoZaqJmlgUBOfV RRm8CcflxPd2JI6XBnVuOq5DoxcU8Mt/ge+MUnLJybGje1DwmIDdUmudl/Zao1G3zhaH wE23yofLiXUmt4/XeRQpDkUWqkGqyzoqul8XntOVJTmW9DzXJtAQDauwZa+0Gt72Ytm7 cMwT105SjAAHbSujXKW5tlHpbJNNqHQxBaRrOku9GFH5wJ7elT1063OoudIY59XLKfMs 7RkAD3I+sFMe8WAEDTJnByY+JLWZdsX10oLTruJYl/aORW0sYjKfX2/K98q2L/awQ5En p4zQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=ZyNtYQjSaDHbL2/xLCjrcMT+vRZIBGW7U2Znx3Iejfg=; b=nkeGggNq6lWfIVwUPBXEM7fZyZEut5NoCjrLZt1SyW4ZoYOCFetmD+EZIjh0URhegd RP8J/VyF8Uret4LBRnpyTfUmddo8d6ifbHJDW27f+nU/2IJceqw0pYJvZJxD3gqRbME8 b9ZI/jh2xh+gwf9vI0clGhpXwJv6O0mD+7cwnp5Bxhj4hOSlUXGrGBftH7Tgss5gW+GU 8M3BTFIHpMwq7CxU4D3JGS15jJ/bJE2z+1UB4nWNltCwOCxPpIZlj2H/pd69zdzhrCnG 1Jo2RfQ1+A0PERJzwoMtTVXL4kNOhkwGjk5x48ZGgdJv5PebeJMMaIdBOmHZ+EdoLytj zSuA== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d32-20020a631d60000000b00460b109a025si11114361pgm.232.2022.11.28.04.02.12; Mon, 28 Nov 2022 04:02:27 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229708AbiK1MAW (ORCPT + 99 others); Mon, 28 Nov 2022 07:00:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36084 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230211AbiK1MAP (ORCPT ); Mon, 28 Nov 2022 07:00:15 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 715CB18B31 for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnr-0003n6-NO; Mon, 28 Nov 2022 13:00:03 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnp-000o8a-R5; Mon, 28 Nov 2022 13:00:02 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00Gzdc-QM; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 08/26] net: dsa: microchip: make ksz8_r_dyn_mac_table() static Date: Mon, 28 Nov 2022 12:59:40 +0100 Message-Id: <20221128115958.4049431-9-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741231876911529?= X-GMAIL-MSGID: =?utf-8?q?1750741231876911529?= ksz8_r_dyn_mac_table() is not used any where outside. So, make it static. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8.h | 2 -- drivers/net/dsa/microchip/ksz8795.c | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8.h b/drivers/net/dsa/microchip/ksz8.h index ad8e69051347..96d453af17c5 100644 --- a/drivers/net/dsa/microchip/ksz8.h +++ b/drivers/net/dsa/microchip/ksz8.h @@ -19,8 +19,6 @@ void ksz8_flush_dyn_mac_table(struct ksz_device *dev, int port); void ksz8_port_setup(struct ksz_device *dev, int port, bool cpu_port); int ksz8_r_phy(struct ksz_device *dev, u16 phy, u16 reg, u16 *val); int ksz8_w_phy(struct ksz_device *dev, u16 phy, u16 reg, u16 val); -int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, - u8 *fid, u8 *src_port, u16 *entries); int ksz8_r_sta_mac_table(struct ksz_device *dev, u16 addr, struct alu_struct *alu); void ksz8_w_sta_mac_table(struct ksz_device *dev, u16 addr, diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index d0cfe74d5b13..7310abd0d8df 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -394,8 +394,8 @@ static int ksz8_valid_dyn_entry(struct ksz_device *dev, u8 *data) return 0; } -int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, - u8 *fid, u8 *src_port, u16 *entries) +static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, + u8 *fid, u8 *src_port, u16 *entries) { u32 data_hi, data_lo; const u8 *shifts; From patchwork Mon Nov 28 11:59:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26676 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609450wrr; Mon, 28 Nov 2022 04:03:43 -0800 (PST) X-Google-Smtp-Source: AA0mqf49nCC9hTTmT7BB1+/5T0L0RG/Jw2cn5/pU70g3Hcj+ME8nrDJcG86Ny33F97KX8g5gNLw0 X-Received: by 2002:a17:902:bb84:b0:184:e4db:e3e with SMTP id m4-20020a170902bb8400b00184e4db0e3emr35337777pls.47.1669637023302; Mon, 28 Nov 2022 04:03:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637023; cv=none; d=google.com; s=arc-20160816; b=vT2ECgi1/xxPmEQ0typyW6htdbcN9mvr2jWERx6ZCnUDd7XOgaiU692fSKVWvegEDZ iltIseq/JrLUfcBC1AEXAZqmIi+qlqpsr+d1/ZUQkOTq6Ej0FpuRYtv1kWKj+wxVeZZQ kZEy2+IKZqWF6z1kLzfalSlqROeEyc3vyczFY6ZWf2hi6asz3loZSWfbgeVdNMlbJGCr TSgfBL33JJD0oBSIltyFABbuU7LIh5/zrVQUoQHPu6vflomrDaCorXy10jk6qv9En8h6 6u2RSnQkejH61n4LRYkSil9P4B3ZoHSNnCpbCyLRNdGaFE9TY3wGbz1u36dUoN0u3Ag0 Ap6g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=ZMpEWuItV2wxq7tumM9LjVsDb206H9tNSPSNWoJgrK4=; b=JZhkDp2OfvhI2aV4G8Hsy/mhH/XyVh7U0W6VUT5c60C1NJRvCTavU6TwLNYarqJkR7 dPWGGiPHOhCKXbR0WkRp2Zqt8PVdbdlKQ1PNK7fGzXQcbO7ZNbfcIP1sMHgkL6VWaAEc hyu5l6xdTJ6ZHipeQtZTvq4w30sRIX/XOxtVopKMA88fYKMvpwpxlr9egVAn9UGgGThD q+LQCvXYKx+CCq+aTLjr2ORcPKtSxbnDI9quIQPmWYKJEHOBokJqX+3VlXx/Ed7TRExo KEpPElMPBuUWkxkHVRjEQNx9YPvNHGceOoeHcfQ+qXb3TvfhdkT5m8mlyCocDx6+t4oU A/gA== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nl14-20020a17090b384e00b0020d4f9a4b4dsi13294802pjb.49.2022.11.28.04.03.20; Mon, 28 Nov 2022 04:03:43 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231697AbiK1MB5 (ORCPT + 99 others); Mon, 28 Nov 2022 07:01:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36132 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231387AbiK1MAS (ORCPT ); Mon, 28 Nov 2022 07:00:18 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 49FFE186D3 for ; Mon, 28 Nov 2022 04:00:16 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnw-0003n8-J8; Mon, 28 Nov 2022 13:00:08 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnp-000o8k-UZ; Mon, 28 Nov 2022 13:00:02 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00Gzdl-Qs; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 09/26] net: dsa: microchip: ksz8_r_dyn_mac_table(): remove fid support Date: Mon, 28 Nov 2022 12:59:41 +0100 Message-Id: <20221128115958.4049431-10-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741311610380255?= X-GMAIL-MSGID: =?utf-8?q?1750741311610380255?= FID != VLAN. FID to VLAN conversation is currently not validated and was not working before within the FDB dump context. So, drop it until we have time to implement this functionality. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 7310abd0d8df..736cf4e54333 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -395,7 +395,7 @@ static int ksz8_valid_dyn_entry(struct ksz_device *dev, u8 *data) } static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, - u8 *fid, u8 *src_port, u16 *entries) + u8 *src_port, u16 *entries) { u32 data_hi, data_lo; const u8 *shifts; @@ -436,8 +436,6 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, shifts[DYNAMIC_MAC_ENTRIES]; *entries = cnt + 1; - *fid = (data_hi & masks[DYNAMIC_MAC_TABLE_FID]) >> - shifts[DYNAMIC_MAC_FID]; *src_port = (data_hi & masks[DYNAMIC_MAC_TABLE_SRC_PORT]) >> shifts[DYNAMIC_MAC_SRC_PORT]; @@ -954,12 +952,11 @@ int ksz8_fdb_dump(struct ksz_device *dev, int port, int ret = 0; u16 i = 0; u16 entries = 0; - u8 fid; u8 src_port; u8 mac[ETH_ALEN]; do { - ret = ksz8_r_dyn_mac_table(dev, i, mac, &fid, &src_port, + ret = ksz8_r_dyn_mac_table(dev, i, mac, &src_port, &entries); if (!ret && port == src_port) { ret = cb(mac, 0, false, data); From patchwork Mon Nov 28 11:59:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26670 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609234wrr; Mon, 28 Nov 2022 04:03:27 -0800 (PST) X-Google-Smtp-Source: AA0mqf63IiS88XWEn9KkL5qgK2AyuwdBiO5/dAh6ZEWTv8kCXxlSdADL28gg0BQY67W3Xmu+z9nx X-Received: by 2002:a63:ae01:0:b0:478:936:3380 with SMTP id q1-20020a63ae01000000b0047809363380mr7608696pgf.266.1669637006960; Mon, 28 Nov 2022 04:03:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637006; cv=none; d=google.com; s=arc-20160816; b=FmVeOIUbq9Dd3PWElSM2QJs6I046q5O6XwoWYhXGKRemY6n+2VZpEdFN7r+xxYn3lj 5WsbzNEtALqRcLdNdaTsBp4I5v5smOvgcANeCLtIvV9xgBecStNGu3Gls2I/zppr/Cwn z9Nzuhue1CDZn8VCSo20BkbCk3A3gWgpgqj2u+uPpIAHfVlqsGSwX94pNu2IoR1GHtnZ 5fiQ3H9xuJ5s2or6RlEKrS2XzOeyUupRJj/lwLiOJhpDfBOX/L8UoZUdb6EJziNxE5yy VlTYQYWY+RbR04TkPBwf6jYorRK7jF/vQvaVMmUQCwJ7yzgRcE5DhspIvdxm4dN+JwgL C+mw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=QEgGnvrDryrPysEdaCNy+1rRcV7C1RPVjxuwdO9cK48=; b=Qv4fI0CiJDCP+PAygo0c/AcdWNAJFPdyFZgX2wUZ1EsTsrsZ3tIf2SBprYuLLaxYQH vvvb+BCZftUIiLdw4WyjuwGsh7Jy0xQSK2Y5mvHM1qZztVWh4d0U3R6qw9xSqaoVVKdI UDU72Ameqt6csYZcx1MVgyj9a5BuuOVIASawNwHB+gWs0/CeCk9tbjZFmCl3b5mn3p3y 0ciaKIN1JZHTz1yNEkJlrqg8P4vRbqerKt7Z5kXt0LvhitQhh0TCPbsxQS+vegxQvJiH lt5ZpIkm71fYhWfJMiPcbTSQJdDaI5EeOJuWQw+bCjBcK52hFjWMTM8X+zs1QY7Co+jk XGfg== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id iz13-20020a170902ef8d00b0018929930a0bsi11167782plb.414.2022.11.28.04.03.04; Mon, 28 Nov 2022 04:03:26 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231613AbiK1MBY (ORCPT + 99 others); Mon, 28 Nov 2022 07:01:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36160 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231360AbiK1MAQ (ORCPT ); Mon, 28 Nov 2022 07:00:16 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 80C5818E03 for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcns-0003pN-P3; Mon, 28 Nov 2022 13:00:04 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnr-000o9F-52; Mon, 28 Nov 2022 13:00:03 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00Gzdu-RN; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 10/26] net: dsa: microchip: ksz8: refactor ksz8_fdb_dump() Date: Mon, 28 Nov 2022 12:59:42 +0100 Message-Id: <20221128115958.4049431-11-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741294628124666?= X-GMAIL-MSGID: =?utf-8?q?1750741294628124666?= After fixing different bugs we can refactor this function: - be paranoid - read only max possibly amount of entries supported by the HW. - pass error values returned by regmap Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 41 ++++++++++++++----------- drivers/net/dsa/microchip/ksz8795_reg.h | 1 + 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 736cf4e54333..308b46bb2ce5 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -949,26 +949,31 @@ void ksz8_flush_dyn_mac_table(struct ksz_device *dev, int port) int ksz8_fdb_dump(struct ksz_device *dev, int port, dsa_fdb_dump_cb_t *cb, void *data) { - int ret = 0; - u16 i = 0; - u16 entries = 0; - u8 src_port; - u8 mac[ETH_ALEN]; + u16 i, entries = 0; + int ret; - do { - ret = ksz8_r_dyn_mac_table(dev, i, mac, &src_port, - &entries); - if (!ret && port == src_port) { - ret = cb(mac, 0, false, data); - if (ret) - break; - } - i++; - } while (i < entries); - if (i >= entries) - ret = 0; + for (i = 0; i < KSZ8_DYN_MAC_ENTRIES; i++) { + u8 mac[ETH_ALEN]; + u8 src_port; - return ret; + ret = ksz8_r_dyn_mac_table(dev, i, mac, &src_port, &entries); + if (ret == -ENXIO) + return 0; + if (ret) + return ret; + + if (i >= entries) + return 0; + + if (port != src_port) + continue; + + ret = cb(mac, 0, false, data); + if (ret) + return ret; + } + + return 0; } int ksz8_mdb_add(struct ksz_device *dev, int port, diff --git a/drivers/net/dsa/microchip/ksz8795_reg.h b/drivers/net/dsa/microchip/ksz8795_reg.h index 7a57c6088f80..0bdceb534192 100644 --- a/drivers/net/dsa/microchip/ksz8795_reg.h +++ b/drivers/net/dsa/microchip/ksz8795_reg.h @@ -811,5 +811,6 @@ #define TAIL_TAG_LOOKUP BIT(7) #define FID_ENTRIES 128 +#define KSZ8_DYN_MAC_ENTRIES 1024 #endif From patchwork Mon Nov 28 11:59:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26664 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5608576wrr; Mon, 28 Nov 2022 04:02:38 -0800 (PST) X-Google-Smtp-Source: AA0mqf5l4KL93EeDOH/5a+diOvwJpZ0V9Jj0Ydl5e9AqiZGbCZp+gOpvi5YlwWOSlKY6IumzdN0p X-Received: by 2002:a63:1f65:0:b0:470:8e8d:44ae with SMTP id q37-20020a631f65000000b004708e8d44aemr29191548pgm.382.1669636958446; Mon, 28 Nov 2022 04:02:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669636958; cv=none; d=google.com; s=arc-20160816; b=z/4PESmEBJOzz2PeSOV+ujB5fkd1dM0u81/XoB8rOKUP+5xcY+66UchCWQxbpjBk/3 Su7rxjRgaKV8mTR3U4jVrEzewUvz04CQmmh1D4Rk0pBBhzeJPqJ5cgofZOm4ohe8E41M b08lR/AGA0siidEHjz0mZdpzty7G9z8S3u0tiaTAC0mtrZfnXuF+rPtqXYPRcxXF7hWH 1ftg8YDhF/q+Eb/D35mHxQRpUknOGVf73AoxEVmps8Q60aBOOS42saYlk5YkUPjjeL14 p8Cpd10o0Dy2In49Anj9+yzCWkSbW1xMtsb9R7dI3NI753X2b9Nmg2TymxPrYTUK+ZXy PvOQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=N9NV/a/fnrFco7//yamwW1tcDRapdlavNrpZj7Fwldw=; b=Y6m7yWmgiyySL1l/MzgNQFEJfOcp/Un7XZc6WEZjqaIt39ODtp71SJvnuTr/2q0uFy w7O9cVTR1L2gxULZrwmriljdPFi45h+3gPnUFJWmQtI/2VOfgUD56egvH4J9KpHjapL2 z2CV3WDZ+DN0k69xttQ/0c7d/U0qPaa9uqVUXkzIt43SP8EyCfAcJxSaXoL+KVwEqXK9 7SHMBaedUgQt9zR0nCjQtIqu+wQ/oJmOUb6TxsMnc4yNwry+eOTRze4M6zxXsDHLRpkK 1xf+tBJQyWMzaMCBX7eE1NJ+wc23PPuBKV8ubmkk0E3rf4nLQZOCAoo00K4H0qcv+YkH CLjw== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ob6-20020a17090b390600b00218fb638f61si12883610pjb.104.2022.11.28.04.02.23; Mon, 28 Nov 2022 04:02:38 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231482AbiK1MAo (ORCPT + 99 others); Mon, 28 Nov 2022 07:00:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36102 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230432AbiK1MAP (ORCPT ); Mon, 28 Nov 2022 07:00:15 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7178618B3D for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnr-0003n4-NK; Mon, 28 Nov 2022 13:00:03 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnp-000o8Y-Od; Mon, 28 Nov 2022 13:00:02 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00Gze5-Ru; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 11/26] net: dsa: microchip: ksz8: ksz8_fdb_dump: dump static MAC table Date: Mon, 28 Nov 2022 12:59:43 +0100 Message-Id: <20221128115958.4049431-12-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741243506568586?= X-GMAIL-MSGID: =?utf-8?q?1750741243506568586?= Extend fdb_dump with static MAC table dump. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 308b46bb2ce5..392f6cb1f706 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -952,6 +952,23 @@ int ksz8_fdb_dump(struct ksz_device *dev, int port, u16 i, entries = 0; int ret; + for (i = 0; i < dev->info->num_statics; i++) { + struct alu_struct alu; + + ret = ksz8_r_sta_mac_table(dev, i, &alu); + if (ret == -ENXIO) + continue; + if (ret) + return ret; + + if (!(alu.port_forward & BIT(port))) + continue; + + ret = cb(alu.mac, 0, true, data); + if (ret) + return ret; + } + for (i = 0; i < KSZ8_DYN_MAC_ENTRIES; i++) { u8 mac[ETH_ALEN]; u8 src_port; From patchwork Mon Nov 28 11:59:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26662 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5608511wrr; Mon, 28 Nov 2022 04:02:34 -0800 (PST) X-Google-Smtp-Source: AA0mqf5wPLAEZyjP7yoYMfjWD0puOnI+sFQGCmeQT97k8LQo2AotVj9R1pZ26w9FtIUxXmAmuVZf X-Received: by 2002:a63:5853:0:b0:477:4a83:8b75 with SMTP id i19-20020a635853000000b004774a838b75mr32766372pgm.519.1669636954148; Mon, 28 Nov 2022 04:02:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669636954; cv=none; d=google.com; s=arc-20160816; b=TJWsjWNozwhFlvw3eenjZ+IaTvrABp3vZBgfarycbWfCmJCzqvtsdJqqd8I41AWbUc UVXj7rN1Iw1EbsTvAOw2Q8OR1EFCz0LhX1qQdRnh2BTK4Ji6dtgd3mLGwoTOhgvKXGgx ZAP2kYR6mZi0XsKu4qZAQhpGVao4Wj5sO6q1Dqzdsl2yoeQhQ1XlobucbYDS0cdRW2Bh fDijlv3zM5QDa81VfQpKVJeYgBMUnnlWrM9T4cPvfKNVc4rSaK4UieWx3Snu02Y3xERk aWZu9Be7rYTbcYjhd++3ohh1bP78e3VQJY1GhvBP0yUFz+QoZy7q+jP3EVczlDEoc06h YK7g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=vudHl+zaVSlx+OuwW0ppAaVmatrgbtPc8/LPvGi7hKU=; b=lAXTniP/h6bfZI015G9JaoS5/SXgcMjryQ4lQme7olq4cwC937b4UROgGlSxKt3XdQ kT0MEXqhoPb+KDWlZ8NgmbmBqNWPombDzyXku76BOnfSENgTDdaQYWw+9cqGce5uO7Sg No1KaRRBaawq1puYcRd5qmXjF/OoD93qbCjtZP5iz2BSzHHbwBRK2+ssblgRf7C4O+gP /kgoB18B16YU3l+xcJoJKfUdCjKy6TgeJB3gU2+EZZobyH9znd8Le9JlK/vXHmMtUwpF /JO/5De5BIbR+OiuhzIeOz92EtjcTzpFQfn41BSei+i3TeUhJ3rCz03WBGYslQyVvcbB rR+A== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l184-20020a633ec1000000b004774d8c61dasi11947723pga.615.2022.11.28.04.02.18; Mon, 28 Nov 2022 04:02:34 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231454AbiK1MAd (ORCPT + 99 others); Mon, 28 Nov 2022 07:00:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36106 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230526AbiK1MAP (ORCPT ); Mon, 28 Nov 2022 07:00:15 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7130B18B21 for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnu-0003so-Iv; Mon, 28 Nov 2022 13:00:06 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcns-000oA2-AR; Mon, 28 Nov 2022 13:00:05 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00GzeE-SQ; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 12/26] net: dsa: microchip: ksz8: move static mac table operations to a separate functions Date: Mon, 28 Nov 2022 12:59:44 +0100 Message-Id: <20221128115958.4049431-13-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741239056674512?= X-GMAIL-MSGID: =?utf-8?q?1750741239056674512?= We need it to reuse the code for add/del_fdb Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 34 +++++++++++++++++++---------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 392f6cb1f706..d16dc8e5ed18 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -993,8 +993,8 @@ int ksz8_fdb_dump(struct ksz_device *dev, int port, return 0; } -int ksz8_mdb_add(struct ksz_device *dev, int port, - const struct switchdev_obj_port_mdb *mdb, struct dsa_db db) +static int ksz8_add_sta_mac(struct ksz_device *dev, int port, + const unsigned char *addr, u16 vid) { struct alu_struct alu; int index; @@ -1004,8 +1004,8 @@ int ksz8_mdb_add(struct ksz_device *dev, int port, for (index = 0; index < dev->info->num_statics; index++) { if (!ksz8_r_sta_mac_table(dev, index, &alu)) { /* Found one already in static MAC table. */ - if (!memcmp(alu.mac, mdb->addr, ETH_ALEN) && - alu.fid == mdb->vid) + if (!memcmp(alu.mac, addr, ETH_ALEN) && + alu.fid == vid) break; /* Remember the first empty entry. */ } else if (!empty) { @@ -1021,23 +1021,23 @@ int ksz8_mdb_add(struct ksz_device *dev, int port, if (index == dev->info->num_statics) { index = empty - 1; memset(&alu, 0, sizeof(alu)); - memcpy(alu.mac, mdb->addr, ETH_ALEN); + memcpy(alu.mac, addr, ETH_ALEN); alu.is_static = true; } alu.port_forward |= BIT(port); - if (mdb->vid) { + if (vid) { alu.is_use_fid = true; /* Need a way to map VID to FID. */ - alu.fid = mdb->vid; + alu.fid = vid; } ksz8_w_sta_mac_table(dev, index, &alu); return 0; } -int ksz8_mdb_del(struct ksz_device *dev, int port, - const struct switchdev_obj_port_mdb *mdb, struct dsa_db db) +static int ksz8_del_sta_mac(struct ksz_device *dev, int port, + const unsigned char *addr, u16 vid) { struct alu_struct alu; int index; @@ -1045,8 +1045,8 @@ int ksz8_mdb_del(struct ksz_device *dev, int port, for (index = 0; index < dev->info->num_statics; index++) { if (!ksz8_r_sta_mac_table(dev, index, &alu)) { /* Found one already in static MAC table. */ - if (!memcmp(alu.mac, mdb->addr, ETH_ALEN) && - alu.fid == mdb->vid) + if (!memcmp(alu.mac, addr, ETH_ALEN) && + alu.fid == vid) break; } } @@ -1065,6 +1065,18 @@ int ksz8_mdb_del(struct ksz_device *dev, int port, return 0; } +int ksz8_mdb_add(struct ksz_device *dev, int port, + const struct switchdev_obj_port_mdb *mdb, struct dsa_db db) +{ + return ksz8_add_sta_mac(dev, port, mdb->addr, mdb->vid); +} + +int ksz8_mdb_del(struct ksz_device *dev, int port, + const struct switchdev_obj_port_mdb *mdb, struct dsa_db db) +{ + return ksz8_del_sta_mac(dev, port, mdb->addr, mdb->vid); +} + int ksz8_port_vlan_filtering(struct ksz_device *dev, int port, bool flag, struct netlink_ext_ack *extack) { From patchwork Mon Nov 28 11:59:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26690 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609889wrr; Mon, 28 Nov 2022 04:04:12 -0800 (PST) X-Google-Smtp-Source: AA0mqf75JxTFyOsXdbjwt3RqQN8G/0TcUkDwRVQKpwEFTV8o0ZD2xAoDgIRQhX1S57ehWV5KVyB3 X-Received: by 2002:a63:4944:0:b0:46f:ec9f:dcb0 with SMTP id y4-20020a634944000000b0046fec9fdcb0mr29472343pgk.202.1669637052050; Mon, 28 Nov 2022 04:04:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637052; cv=none; d=google.com; s=arc-20160816; b=d5xFWaCEDPBhIg9Cqe7EqcFFaO624ln6ff5kqRkvgr1Ogt2gNzDGNRvPX0iZlymWS2 iL8pFc9+lQCzNf/qxEewIdn1Do54SlhVkTtg0xJeoKOEH23D8Dydxa9NH8LL1ryb5CQX 243tVEKtiW8fGdflpNZBo2mOZf2XoyZPrjLGEfI5UTCIVo2QuWYRJY9qxmEm5cVbaL1r 1hI1qH6NnzsjJ3okqrYeUwbtW+xkcjxWaJSHsyAxvN81OQ1Y7D8F3TAqZ30AQWOZArD1 CScskQrtL+Pkq46OjzL7fzmoqcRdYDiBnEDXPwS1H60hsPL4soavHDyBEUt44xUiG+P/ eR8g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=yTVjDmiDY52sBKEVBeRxRidFllvuNrKs4kCD9AtGV3k=; b=XaS9/iNBUkBFWkIVLewbZSMyTKdhencI27VLdSluKxlDx947UXrzUI1N1vWm5Q5su/ rj8Ckcw7C8EFjG5iNQY88ueq3ec7oZThgtSaJIxjbvpRArdukqGwUcE34WAELfwirP9G tTwJQvQvEkWFq6bVty9BqlHouIQJXyDOQLoIpatWQ/3Xnhfc4kUZq8cCD2cJEpbVMS2h +ZZsSeJBlwMvQ7EcJaw0gPsJtwhzi3LTm1q1wNdQB6GJYTmiBlYDJBjRMBeLDvmcb8UV 7eEdEq5EDYoIs6gGl0ov+4+y0O6LAjTE+zS/zWDzVN5S6CUyQ6J09nr0H2G3p0Zt9YJA WNAQ== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y2-20020a63fa02000000b004771a05aea3si11262802pgh.554.2022.11.28.04.03.52; Mon, 28 Nov 2022 04:04:12 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231400AbiK1MBA (ORCPT + 99 others); Mon, 28 Nov 2022 07:01:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36134 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231191AbiK1MAQ (ORCPT ); Mon, 28 Nov 2022 07:00:16 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7155A18B29 for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnr-0003n3-NJ; Mon, 28 Nov 2022 13:00:03 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnp-000o8R-IO; Mon, 28 Nov 2022 13:00:02 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00GzeO-Sw; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 13/26] net: dsa: microchip: ksz8: add fdb_add/del support Date: Mon, 28 Nov 2022 12:59:45 +0100 Message-Id: <20221128115958.4049431-14-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741341833739364?= X-GMAIL-MSGID: =?utf-8?q?1750741341833739364?= Provide access to the static MAC table over fdb_add/del callbacks. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8.h | 4 ++++ drivers/net/dsa/microchip/ksz8795.c | 12 ++++++++++++ drivers/net/dsa/microchip/ksz_common.c | 2 ++ 3 files changed, 18 insertions(+) diff --git a/drivers/net/dsa/microchip/ksz8.h b/drivers/net/dsa/microchip/ksz8.h index 96d453af17c5..a28fa7cd4d98 100644 --- a/drivers/net/dsa/microchip/ksz8.h +++ b/drivers/net/dsa/microchip/ksz8.h @@ -30,6 +30,10 @@ void ksz8_freeze_mib(struct ksz_device *dev, int port, bool freeze); void ksz8_port_init_cnt(struct ksz_device *dev, int port); int ksz8_fdb_dump(struct ksz_device *dev, int port, dsa_fdb_dump_cb_t *cb, void *data); +int ksz8_fdb_add(struct ksz_device *dev, int port, const unsigned char *addr, + u16 vid, struct dsa_db db); +int ksz8_fdb_del(struct ksz_device *dev, int port, const unsigned char *addr, + u16 vid, struct dsa_db db); int ksz8_mdb_add(struct ksz_device *dev, int port, const struct switchdev_obj_port_mdb *mdb, struct dsa_db db); int ksz8_mdb_del(struct ksz_device *dev, int port, diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index d16dc8e5ed18..208cf4dde397 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -1077,6 +1077,18 @@ int ksz8_mdb_del(struct ksz_device *dev, int port, return ksz8_del_sta_mac(dev, port, mdb->addr, mdb->vid); } +int ksz8_fdb_add(struct ksz_device *dev, int port, const unsigned char *addr, + u16 vid, struct dsa_db db) +{ + return ksz8_add_sta_mac(dev, port, addr, vid); +} + +int ksz8_fdb_del(struct ksz_device *dev, int port, const unsigned char *addr, + u16 vid, struct dsa_db db) +{ + return ksz8_del_sta_mac(dev, port, addr, vid); +} + int ksz8_port_vlan_filtering(struct ksz_device *dev, int port, bool flag, struct netlink_ext_ack *extack) { diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index afb846c18b57..171cb0063fbf 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -197,6 +197,8 @@ static const struct ksz_dev_ops ksz8_dev_ops = { .freeze_mib = ksz8_freeze_mib, .port_init_cnt = ksz8_port_init_cnt, .fdb_dump = ksz8_fdb_dump, + .fdb_add = ksz8_fdb_add, + .fdb_del = ksz8_fdb_del, .mdb_add = ksz8_mdb_add, .mdb_del = ksz8_mdb_del, .vlan_filtering = ksz8_port_vlan_filtering, From patchwork Mon Nov 28 11:59:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26679 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609551wrr; Mon, 28 Nov 2022 04:03:51 -0800 (PST) X-Google-Smtp-Source: AA0mqf4A4U0/xIfSQKhMjmaCafHusZGj0NUED5DJXSrPL3QmBdLISjvmwyd/tZyPn7obNtrds+oz X-Received: by 2002:a65:53ca:0:b0:46f:ed3a:f38b with SMTP id z10-20020a6553ca000000b0046fed3af38bmr32132874pgr.387.1669637030642; Mon, 28 Nov 2022 04:03:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637030; cv=none; d=google.com; s=arc-20160816; b=GtFT/iJ2zZsBGc7B4qXjkUSvplmCroMkD6oQPwlNEYo4RU+a3dtOew7JIrmcw8/+2F ZiIHDP4fIGWvcrmqgbnqFpMt7fMH5CqxnqwaDANobqvouHN7Ba8UyzC3dYqRSfgYF4oD +gx4dAIUHlF4O7TIQ7iD9u22zHpcI5zKtlHoxR0NSpbwO9vrg4rNJeIAV7fC0E/IysDh KoLynqZViff2PZI0Zw0JrcqCOo72TPkNIlJBg1aHuOibREesRVwPr+sQKBcpL44zDxDj 0nmJUswmEJLuMyrz8esnyOPj0W4zKU4HPGdGWDvhW6eZt5IJw0ZLxDRMR5Sl0kFTgCKl nMgQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=TXoJu8wDxfjKxT5n8EWNvDZr9Wr5YFC9dmEEwDnkAjU=; b=JJC8Fn+hhgEy0DHTf89BRvV9Lm1V7/A55hYohdn9rkGifHX14dHBpsSNFwZD224E13 CYqWVCxl9YHhgXssroRsaEJ6SeTWimS8i5O/GmJPpn8zPUpawC9ObadXoTRKVU8uN7Dv BtGz40eQXepVvZP72bZqNtDd9fKdnmr+pnE1dAlro+sxixT6rf534LLlE437cQ5jl8oJ W7RI7G5dAgYGLKWebt335WOTUyjA1KlzqISoQEzgha0tObbQ3Yz2sZ/jOBM8PZuS+B9O 4Y9jDM3//6pjPvrwHwmVB1/fhhYXszOhnrB3dSsBgaGrIXQoWYRKB1QPlIADT9N0H9by /uog== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b9-20020a17090a9bc900b0020af2b9dd80si3489204pjw.69.2022.11.28.04.03.30; Mon, 28 Nov 2022 04:03:50 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231255AbiK1MCS (ORCPT + 99 others); Mon, 28 Nov 2022 07:02:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36302 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231416AbiK1MAU (ORCPT ); Mon, 28 Nov 2022 07:00:20 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 66000193CE for ; Mon, 28 Nov 2022 04:00:18 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcns-0003ne-Fi; Mon, 28 Nov 2022 13:00:04 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnq-000o97-Po; Mon, 28 Nov 2022 13:00:03 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00Gzeh-TS; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 14/26] net: dsa: microchip: KSZ88x3 fix loopback support Date: Mon, 28 Nov 2022 12:59:46 +0100 Message-Id: <20221128115958.4049431-15-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741318855873393?= X-GMAIL-MSGID: =?utf-8?q?1750741318855873393?= With current code loopback is not working and selftest will always fail. Fix register and bit offsets to make loopback on KSZ88x3 switches. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 24 ++++++++++++++++++------ drivers/net/dsa/microchip/ksz8795_reg.h | 1 + 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 208cf4dde397..a6d5de41a754 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -625,8 +625,13 @@ int ksz8_r_phy(struct ksz_device *dev, u16 phy, u16 reg, u16 *val) if (ret) return ret; - if (restart & PORT_PHY_LOOPBACK) - data |= BMCR_LOOPBACK; + if (ksz_is_ksz88x3(dev)) { + if (restart & KSZ8873_PORT_PHY_LOOPBACK) + data |= BMCR_LOOPBACK; + } else { + if (restart & PORT_PHY_LOOPBACK) + data |= BMCR_LOOPBACK; + } if (ctrl & PORT_FORCE_100_MBIT) data |= BMCR_SPEED100; if (ksz_is_ksz88x3(dev)) { @@ -849,10 +854,17 @@ int ksz8_w_phy(struct ksz_device *dev, u16 phy, u16 reg, u16 val) data |= PORT_FORCE_MDIX; else data &= ~PORT_FORCE_MDIX; - if (val & BMCR_LOOPBACK) - data |= PORT_PHY_LOOPBACK; - else - data &= ~PORT_PHY_LOOPBACK; + if (ksz_is_ksz88x3(dev)) { + if (val & BMCR_LOOPBACK) + data |= KSZ8873_PORT_PHY_LOOPBACK; + else + data &= ~KSZ8873_PORT_PHY_LOOPBACK; + } else { + if (val & BMCR_LOOPBACK) + data |= PORT_PHY_LOOPBACK; + else + data &= ~PORT_PHY_LOOPBACK; + } if (data != restart) { ret = ksz_pwrite8(dev, p, regs[P_NEG_RESTART_CTRL], diff --git a/drivers/net/dsa/microchip/ksz8795_reg.h b/drivers/net/dsa/microchip/ksz8795_reg.h index 0bdceb534192..08204da7d621 100644 --- a/drivers/net/dsa/microchip/ksz8795_reg.h +++ b/drivers/net/dsa/microchip/ksz8795_reg.h @@ -262,6 +262,7 @@ #define PORT_AUTO_MDIX_DISABLE BIT(2) #define PORT_FORCE_MDIX BIT(1) #define PORT_MAC_LOOPBACK BIT(0) +#define KSZ8873_PORT_PHY_LOOPBACK BIT(0) #define REG_PORT_1_STATUS_2 0x1E #define REG_PORT_2_STATUS_2 0x2E From patchwork Mon Nov 28 11:59:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26667 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5608980wrr; Mon, 28 Nov 2022 04:03:09 -0800 (PST) X-Google-Smtp-Source: AA0mqf6VT+H3HsWw7TR3R5q2oaPAgpWawHeQEWfLVc8C+VENcMkn8H4642X1j99IFYy50c1k9M3w X-Received: by 2002:a17:90b:1117:b0:218:f5d3:61f3 with SMTP id gi23-20020a17090b111700b00218f5d361f3mr23308249pjb.222.1669636988704; Mon, 28 Nov 2022 04:03:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669636988; cv=none; d=google.com; s=arc-20160816; b=mwFSIJ60nxv9jb9SavlGHWrAKv+aHHyhsQRh0yxdPTZe8EmjM/wGfNzLwsztPIQmto 50lMDiWYFuOc0fjSj2924sYv+VPzBd3uwdGzPm/Yg9XaDllpHnrgZ3pR/BVQ7umPowoF vbYl0+dLeUfKGVfMwezmRUvsJ4Zvg8d5JhpaEbJKqyaFkRYe+w8xaAQJQFmWr8JPgZpT 2C08eNHbUDfFiBfTi2xG0nW5Nw+2na74rBOX6OFRYu23ICRe2nfuq/Y93wQJoavRVrKC ijo3l06Hdy4jhzqVwvjkpPOgdZgAiQ6REmCaDw4ComZu5RGVB/P8MCduJbpQZJ8lh9BA IuaA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=yIJzat0ZSl7v9BJNV0/Qe592UM5oPzzTnJt4bSH8DCY=; b=aNIv9r5j2sRFG+B+4nbufq9evAL3AmEjaBDq056IBWCz3XMCX19NgugCNtrYc9hV45 g02xieKbIAs4fhX6XAL0to6Io3U7aQvi4mclG81QZyJ2nzUooTcMWhdStlxjbWu+/Q4V WbLrfUbOCb1LguhjAX1hpENZeY9RG11iel3uk+NUVJIdc6n8szwns46uLdWy24/IS9Dm wSa5NoURoADKflo4lf0f/f4MUKcQFhfN9EVFRNdp9D47OwEIPa/4484x0UaBdvULG/vS wHt5ifPoyeQyMm36W8rGhPV8vDqufiuaI+GqzCWUeyroik8gM9TUhpHijQM0JleYUnCW HAVA== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v191-20020a6389c8000000b004776271965dsi10918807pgd.41.2022.11.28.04.02.45; Mon, 28 Nov 2022 04:03:08 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231426AbiK1MBS (ORCPT + 99 others); Mon, 28 Nov 2022 07:01:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36100 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229878AbiK1MAQ (ORCPT ); Mon, 28 Nov 2022 07:00:16 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 714C618B27 for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnr-0003lx-NM; Mon, 28 Nov 2022 13:00:03 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcno-000o8E-Up; Mon, 28 Nov 2022 13:00:01 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00Gzer-Tz; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 15/26] net: dsa: microchip: ksz8_r_dyn_mac_table(): move main part of the code out of if statement Date: Mon, 28 Nov 2022 12:59:47 +0100 Message-Id: <20221128115958.4049431-16-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741274848861537?= X-GMAIL-MSGID: =?utf-8?q?1750741274848861537?= Start reworking error handling of this function Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 56 +++++++++++++++-------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index a6d5de41a754..2674fd553851 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -402,7 +402,9 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, const u32 *masks; const u16 *regs; u16 ctrl_addr; + u64 buf = 0; u8 data; + int cnt; int rc; shifts = dev->info->shifts; @@ -418,36 +420,36 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, if (rc == -EAGAIN) { if (addr == 0) *entries = 0; + goto unlock_alu; } else if (rc == -ENXIO) { *entries = 0; - /* At least one valid entry in the table. */ - } else { - u64 buf = 0; - int cnt; - - ksz_read64(dev, regs[REG_IND_DATA_HI], &buf); - data_hi = (u32)(buf >> 32); - data_lo = (u32)buf; - - /* Check out how many valid entry in the table. */ - cnt = data & masks[DYNAMIC_MAC_TABLE_ENTRIES_H]; - cnt <<= shifts[DYNAMIC_MAC_ENTRIES_H]; - cnt |= (data_hi & masks[DYNAMIC_MAC_TABLE_ENTRIES]) >> - shifts[DYNAMIC_MAC_ENTRIES]; - *entries = cnt + 1; - - *src_port = (data_hi & masks[DYNAMIC_MAC_TABLE_SRC_PORT]) >> - shifts[DYNAMIC_MAC_SRC_PORT]; - - mac_addr[5] = (u8)data_lo; - mac_addr[4] = (u8)(data_lo >> 8); - mac_addr[3] = (u8)(data_lo >> 16); - mac_addr[2] = (u8)(data_lo >> 24); - - mac_addr[1] = (u8)data_hi; - mac_addr[0] = (u8)(data_hi >> 8); - rc = 0; + goto unlock_alu; } + + ksz_read64(dev, regs[REG_IND_DATA_HI], &buf); + data_hi = (u32)(buf >> 32); + data_lo = (u32)buf; + + /* Check out how many valid entry in the table. */ + cnt = data & masks[DYNAMIC_MAC_TABLE_ENTRIES_H]; + cnt <<= shifts[DYNAMIC_MAC_ENTRIES_H]; + cnt |= (data_hi & masks[DYNAMIC_MAC_TABLE_ENTRIES]) >> + shifts[DYNAMIC_MAC_ENTRIES]; + *entries = cnt + 1; + + *src_port = (data_hi & masks[DYNAMIC_MAC_TABLE_SRC_PORT]) >> + shifts[DYNAMIC_MAC_SRC_PORT]; + + mac_addr[5] = (u8)data_lo; + mac_addr[4] = (u8)(data_lo >> 8); + mac_addr[3] = (u8)(data_lo >> 16); + mac_addr[2] = (u8)(data_lo >> 24); + + mac_addr[1] = (u8)data_hi; + mac_addr[0] = (u8)(data_hi >> 8); + rc = 0; + +unlock_alu: mutex_unlock(&dev->alu_mutex); return rc; From patchwork Mon Nov 28 11:59:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26673 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609406wrr; Mon, 28 Nov 2022 04:03:40 -0800 (PST) X-Google-Smtp-Source: AA0mqf6ysqQaNehULE4DlxgQlZmo0txd0XlKQR2Rl25C7+zMYrZl3j1qsyki9e+Boq/QU2pWlKii X-Received: by 2002:a17:902:aa97:b0:189:78d5:79d3 with SMTP id d23-20020a170902aa9700b0018978d579d3mr10111574plr.79.1669637020236; Mon, 28 Nov 2022 04:03:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637020; cv=none; d=google.com; s=arc-20160816; b=rkdA5Xjp/n9sGbhaAr6PDAPC2l2QbRksGIJymbZZtfM7qUb4cy+q9GR1mtxsiFTvGP pMx2f8JUH3D+IMrstR7kiV1DBcDdF1ROmY32UA5I2hyjt7iZmt9se7++SAPU35XTYfGe KDquGF4oTjARJJK5LKs+82tfFBH1a9pfkbUiAaxKpDWKR3+KkQHmveT/YAQgFaRUkov8 1rVlqmrYc5IcnkLdwXe1gGMo8K/rmLzP4dHttO/7+PujI8gPb+UnNStMjLWNgzyLzghe BHfNt99ZgC+YbRhLb08iMgi+e53uLoUJZZwNGFjKpqC9GiZdt0Tv9GTWCGjB1NfWNPC/ iP/g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=4eBcOkvij+NsANuIbFZRzSBlIGg52zAPjOtRjuPtbHo=; b=dcm7J++4pBy9bfW3qBTaslp67yVN95uFCAHFaxq1e7Ua7g0s9EIhAZV9GOx3oxrV21 ZEQ4zYr5ArN2rqTZlFF9Bah+q2w/GlfL4OjO441kwzGGWPxKgPzMhxT9Zy7JIyy4nlOw Axwby1bqWdTIEZFFW9xvKwip0I56jOrEKITn5iNSQc4oRe7XKhqUuN5ICMhI9rNgZWFW LDU524k3s6Lbg9nvFFQEfqj2PIUxoWv8205tu++IxwsDTHVsODagVOfVrLHSdSo0YdiL g2r7Wa01W4uQ44dXa0TzGgbReb9J2xpdVbsTY1rFQTTCp78jEksuoaI4Cw9ciunUEs6z Ll2A== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q140-20020a632a92000000b00476e98ca7d5si12808817pgq.785.2022.11.28.04.03.14; Mon, 28 Nov 2022 04:03:40 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229896AbiK1MBr (ORCPT + 99 others); Mon, 28 Nov 2022 07:01:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36184 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231379AbiK1MAR (ORCPT ); Mon, 28 Nov 2022 07:00:17 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 512E618B07 for ; Mon, 28 Nov 2022 04:00:15 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnr-0003n7-NP; Mon, 28 Nov 2022 13:00:03 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnp-000o8d-SX; Mon, 28 Nov 2022 13:00:02 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00Gzf0-UV; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 16/26] net: dsa: microchip: ksz8_r_dyn_mac_table(): use ret instead of rc Date: Mon, 28 Nov 2022 12:59:48 +0100 Message-Id: <20221128115958.4049431-17-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741308279161135?= X-GMAIL-MSGID: =?utf-8?q?1750741308279161135?= Other parts of this file use ret. So, unify it. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 2674fd553851..1677f61b138a 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -405,7 +405,7 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, u64 buf = 0; u8 data; int cnt; - int rc; + int ret; shifts = dev->info->shifts; masks = dev->info->masks; @@ -416,12 +416,12 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, mutex_lock(&dev->alu_mutex); ksz_write16(dev, regs[REG_IND_CTRL_0], ctrl_addr); - rc = ksz8_valid_dyn_entry(dev, &data); - if (rc == -EAGAIN) { + ret = ksz8_valid_dyn_entry(dev, &data); + if (ret == -EAGAIN) { if (addr == 0) *entries = 0; goto unlock_alu; - } else if (rc == -ENXIO) { + } else if (ret == -ENXIO) { *entries = 0; goto unlock_alu; } @@ -447,12 +447,12 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, mac_addr[1] = (u8)data_hi; mac_addr[0] = (u8)(data_hi >> 8); - rc = 0; + ret = 0; unlock_alu: mutex_unlock(&dev->alu_mutex); - return rc; + return ret; } int ksz8_r_sta_mac_table(struct ksz_device *dev, u16 addr, From patchwork Mon Nov 28 11:59:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26677 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609537wrr; Mon, 28 Nov 2022 04:03:49 -0800 (PST) X-Google-Smtp-Source: AA0mqf5OFP9k2+IFxVJWgJSjoyoEjNIn/JomKm/lgqCUgweZui6QpVq6nuUyLwxJaiLi6sxLu1Zh X-Received: by 2002:a65:49c2:0:b0:478:42f:42e9 with SMTP id t2-20020a6549c2000000b00478042f42e9mr8207862pgs.53.1669637029144; Mon, 28 Nov 2022 04:03:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637029; cv=none; d=google.com; s=arc-20160816; b=ClAZiZ65EfojJYvstAF14fDeyvjEkyU+m4OIz9Qla2XJKo1f/rBSgkYZOdfQgz4iFJ gccotaXLzMVEkPVjLM5MqHxVd/oyEgL8IIPG++X0edHWau8KxjurLDZYSPZRLD9mdX12 OyCvS4YtGtIKNrkIUJB846Sy2chkkxwM0pcS8NrqlW1+qQPtNJwBE/yzIUOiHL/Ebhwi ZpNnhewQ4zTahjZxVTR+j1UqaydZhnIz8Etkj8CyBtU12u+XgtJgYwM8kRNBRCkszCCZ OG1NjLoep+jiXQh8LSEeX8ADBoPSzqPzz959rkgBqreKW4/Nyi094THe3A1EWdMzexxP MCqQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=XmHU/ipNjxydPpZjLZDxSqbozTxqoeMxRQ4UMOuMaPA=; b=pJHyGXLB71/Y18M+PayIpGt5lyKTQPV03IWjtvMFveC4GkBj7Fsh4Xn5DplAurRfFI GqwJe3vLsv20hT4Xygj2k1jk0Z77SXKIdpMCiF9JVYfU0ARgtoNYKa2JTbig/y+IHGmx 3kGorBxf9Hn0zh6bFiDQxKtDA74b6WWBVy7l2oSvq92Q1qzkJJaSLu3pCuVU7FBZ4Awn yjtsEnaD744oztVu+pYepLnCJuH91E2czdJm/uM79151TVUsiDTiHHSSZWdaBlQwBQ3B ezr7trUOFtwH54D5B8JDC7jFaYRW4G9ayjQqnVs+jzk2/Tto+lJjsjBD9xpRd0RG+n+8 OJ7w== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v13-20020a63464d000000b0046004666d82si11384050pgk.497.2022.11.28.04.03.28; Mon, 28 Nov 2022 04:03:49 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231747AbiK1MCK (ORCPT + 99 others); Mon, 28 Nov 2022 07:02:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36102 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231408AbiK1MAT (ORCPT ); Mon, 28 Nov 2022 07:00:19 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 26D1B18E1C for ; Mon, 28 Nov 2022 04:00:18 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcns-0003p1-Li; Mon, 28 Nov 2022 13:00:04 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnr-000o9E-2I; Mon, 28 Nov 2022 13:00:03 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00GzfC-V0; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 17/26] net: dsa: microchip: ksz8_r_dyn_mac_table(): ksz: do not return EAGAIN on timeout Date: Mon, 28 Nov 2022 12:59:49 +0100 Message-Id: <20221128115958.4049431-18-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741317230077874?= X-GMAIL-MSGID: =?utf-8?q?1750741317230077874?= EAGAIN was not used by previous code and not used by current code. So, remove it and use proper error value. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 1677f61b138a..1b067e0cacd5 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -382,7 +382,7 @@ static int ksz8_valid_dyn_entry(struct ksz_device *dev, u8 *data) /* Entry is not ready for accessing. */ if (*data & masks[DYNAMIC_MAC_TABLE_NOT_READY]) { - return -EAGAIN; + return -ETIMEDOUT; /* Entry is ready for accessing. */ } else { ksz_read8(dev, regs[REG_IND_DATA_8], data); @@ -417,15 +417,14 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, ksz_write16(dev, regs[REG_IND_CTRL_0], ctrl_addr); ret = ksz8_valid_dyn_entry(dev, &data); - if (ret == -EAGAIN) { - if (addr == 0) - *entries = 0; - goto unlock_alu; - } else if (ret == -ENXIO) { + if (ret == -ENXIO) { *entries = 0; goto unlock_alu; } + if (ret) + goto unlock_alu; + ksz_read64(dev, regs[REG_IND_DATA_HI], &buf); data_hi = (u32)(buf >> 32); data_lo = (u32)buf; From patchwork Mon Nov 28 11:59:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26666 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5608820wrr; Mon, 28 Nov 2022 04:02:56 -0800 (PST) X-Google-Smtp-Source: AA0mqf4v9DYYayZANoXZm+7aCFn760s1hWy141/NcxQ10hejoAe7hMg7Q2i+eYyJ/RXlM7wdK87n X-Received: by 2002:a17:90a:de10:b0:218:c568:4214 with SMTP id m16-20020a17090ade1000b00218c5684214mr34795608pjv.135.1669636975908; Mon, 28 Nov 2022 04:02:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669636975; cv=none; d=google.com; s=arc-20160816; b=BbsnNeQxUbwIaNBTvqrRYxPnf6bepdbuUhoste4egV7rCfTN2hD2ytJiHABhzo/DYH nXKyPW75d7Oz9AqkNOA+8T3xVs8B8eQ0b3WbAtfZ5S2hYJmp4TzIwKqzDVpQ1Nt/J75+ 4xebGo3AZuq/qd7QWWp8e2Ib/D/XVaO7y4nVevqmH8YTUUCt2yAJsVKppbKhjh+Jc1bH CIkqNH2eINpq/jUaHiUmehJ801jeEAtBm1W4O1lFFjPjBrFu92hLIrg1ndJSMZePQDFq jfQHFTShM1+ffZz7AJa/k76Hjk57OcZemia4y+HLvHhgxr5szmtqDkQP/9OwaRkcsU7X UnIw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=BBUeH4/Bp9jAWbK60tzdMzKSwMhcKD3fpl3RLk87vgI=; b=syHKTfBzBW5zR3rAB+SmtIvibTe4XbyscdEt+xj7+TqEW6AC52tepSRuESD0hpUsmz 20qOmd7tyruu38Qy44+zxNxOqfFLcUiiigcsn4iEPv3LdArbAk8vMEZsG1L0AoThOAts UaIvnQXawEUaeYeh0gvqTc/VWkxNMuWdceUd5WLEs2qztc5xU1tlR3Qp6y2SMl+nvkqY +YhBEKnHXpk/bcN5TK5A9qjA6e6wFaBLRUfSwH8XvWlaPqI9BSk7T2wxCgCn0N9oBnzO XV7hsqdJYtY7/8ntmAgfvQp+end74XDUxduVreKWXMjC9mIhKzAYcB0XancT5LYvZOhA JT8A== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 67-20020a630346000000b00476cd353910si13058486pgd.49.2022.11.28.04.02.35; Mon, 28 Nov 2022 04:02:55 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231152AbiK1MA2 (ORCPT + 99 others); Mon, 28 Nov 2022 07:00:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36100 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230050AbiK1MAP (ORCPT ); Mon, 28 Nov 2022 07:00:15 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 711E0186FE for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcns-0003pk-S0; Mon, 28 Nov 2022 13:00:04 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnr-000o9T-B5; Mon, 28 Nov 2022 13:00:04 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcnn-00Gzfi-Vi; Mon, 28 Nov 2022 12:59:59 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 18/26] net: dsa: microchip: ksz8_r_dyn_mac_table(): return read/write error if we got any Date: Mon, 28 Nov 2022 12:59:50 +0100 Message-Id: <20221128115958.4049431-19-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741261706916156?= X-GMAIL-MSGID: =?utf-8?q?1750741261706916156?= The read/write path may fail. So, return error if we got it. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 1b067e0cacd5..3348f5c25942 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -371,12 +371,16 @@ static int ksz8_valid_dyn_entry(struct ksz_device *dev, u8 *data) int timeout = 100; const u32 *masks; const u16 *regs; + int ret; masks = dev->info->masks; regs = dev->info->regs; do { - ksz_read8(dev, regs[REG_IND_DATA_CHECK], data); + ret = ksz_read8(dev, regs[REG_IND_DATA_CHECK], data); + if (ret) + return ret; + timeout--; } while ((*data & masks[DYNAMIC_MAC_TABLE_NOT_READY]) && timeout); @@ -385,7 +389,9 @@ static int ksz8_valid_dyn_entry(struct ksz_device *dev, u8 *data) return -ETIMEDOUT; /* Entry is ready for accessing. */ } else { - ksz_read8(dev, regs[REG_IND_DATA_8], data); + ret = ksz_read8(dev, regs[REG_IND_DATA_8], data); + if (ret) + return ret; /* There is no valid entry in the table. */ if (*data & masks[DYNAMIC_MAC_TABLE_MAC_EMPTY]) @@ -414,7 +420,9 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, ctrl_addr = IND_ACC_TABLE(TABLE_DYNAMIC_MAC | TABLE_READ) | addr; mutex_lock(&dev->alu_mutex); - ksz_write16(dev, regs[REG_IND_CTRL_0], ctrl_addr); + ret = ksz_write16(dev, regs[REG_IND_CTRL_0], ctrl_addr); + if (ret) + goto unlock_alu; ret = ksz8_valid_dyn_entry(dev, &data); if (ret == -ENXIO) { @@ -425,7 +433,10 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, if (ret) goto unlock_alu; - ksz_read64(dev, regs[REG_IND_DATA_HI], &buf); + ret = ksz_read64(dev, regs[REG_IND_DATA_HI], &buf); + if (ret) + goto unlock_alu; + data_hi = (u32)(buf >> 32); data_lo = (u32)buf; @@ -446,7 +457,6 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, mac_addr[1] = (u8)data_hi; mac_addr[0] = (u8)(data_hi >> 8); - ret = 0; unlock_alu: mutex_unlock(&dev->alu_mutex); From patchwork Mon Nov 28 11:59:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26663 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5608555wrr; Mon, 28 Nov 2022 04:02:36 -0800 (PST) X-Google-Smtp-Source: AA0mqf5sjvJ9xS9LMNn1pJSurCzScfHXBqSVBacpUwlriUiBHpKqpxgN7v/KYvEHDkiyBdu3k45g X-Received: by 2002:a63:7987:0:b0:477:bf2e:ec58 with SMTP id u129-20020a637987000000b00477bf2eec58mr20610934pgc.269.1669636956513; Mon, 28 Nov 2022 04:02:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669636956; cv=none; d=google.com; s=arc-20160816; b=BN+IhALHJhT2bZD9zKf5KKW+R7kWgxOLPgvf0TTk9VVf36N5j/bqmjMaem4ncV9MTZ s8vsC/L5K63tg6WtjP50J4KWzRqNVcgoMp4avV482wQh2Aq7JjooRfYgPqx7QtGkkeSp 6xLouSDg9ybriaMTSPvcdIFrGfOHK5EY4AoB3vTJSeAK0uWLr8Mh5PtKQXKXoy5BmPgK pGoVa63lzyKIjB92pr8u1NlnqltNWRRCCIOZjBDJJg+j1+j0AoEZL0LNbRZ/jv5mVtPR iYFGQm3RT5tKxQe9EeWkB8FFP+OPtCrNqu+jqbhZiX9eG4ZFT/0nw1DGCskRLFMaqe0l TJBg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=3wVI1YZ79SizMVkbgfkpOmYtT0p5T5ubiYCU+KkkmcQ=; b=PNgBXX12QxmqctuMxabbXoUrB9TA1vjKhACh42TmCaSTymYb4jb+iWaYshwAHeJLV7 CYQGQcsKbYZ+qR4KUC4kqpvAWgOSg+1SzQcji4HfvWHP/4Iz4U3GU2RjGcYqme3GcmIR EpmfQJ2o2NNFcnIu0g3iBqPqeQZNuYhjyVrgxAwX6Fi4ASJbMufjt3VfRZ7BXMFgmUey uBIyclbaSSsDVpypNKpQ1aLO88K3UM/yIh53nDi2ZSIPAhfw5XMaE/LsiVNgCV3+cSos u5i07J7fTww73UBV1Cxz7X8MyMwN5SSJM7jfQwzV/ZeHA1bYDtHTrnWu+/MTl8lGQ/pa LhrA== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r2-20020a17090a940200b00212f92957d5si13290475pjo.167.2022.11.28.04.02.20; Mon, 28 Nov 2022 04:02:36 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231468AbiK1MAj (ORCPT + 99 others); Mon, 28 Nov 2022 07:00:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36126 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231175AbiK1MAQ (ORCPT ); Mon, 28 Nov 2022 07:00:16 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 71045186EC for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnt-0003qV-72; Mon, 28 Nov 2022 13:00:05 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnr-000o9Y-HM; Mon, 28 Nov 2022 13:00:04 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcno-00Gzfv-09; Mon, 28 Nov 2022 13:00:00 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 19/26] net: dsa: microchip: ksz8_r_dyn_mac_table(): use entries variable to signal 0 entries Date: Mon, 28 Nov 2022 12:59:51 +0100 Message-Id: <20221128115958.4049431-20-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741241373661460?= X-GMAIL-MSGID: =?utf-8?q?1750741241373661460?= We already have a variable to provide number of entries. So use it, instead of using error number. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 3348f5c25942..31c77e086a9d 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -385,19 +385,11 @@ static int ksz8_valid_dyn_entry(struct ksz_device *dev, u8 *data) } while ((*data & masks[DYNAMIC_MAC_TABLE_NOT_READY]) && timeout); /* Entry is not ready for accessing. */ - if (*data & masks[DYNAMIC_MAC_TABLE_NOT_READY]) { + if (*data & masks[DYNAMIC_MAC_TABLE_NOT_READY]) return -ETIMEDOUT; - /* Entry is ready for accessing. */ - } else { - ret = ksz_read8(dev, regs[REG_IND_DATA_8], data); - if (ret) - return ret; - /* There is no valid entry in the table. */ - if (*data & masks[DYNAMIC_MAC_TABLE_MAC_EMPTY]) - return -ENXIO; - } - return 0; + /* Entry is ready for accessing. */ + return ksz_read8(dev, regs[REG_IND_DATA_8], data); } static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, @@ -425,13 +417,13 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, goto unlock_alu; ret = ksz8_valid_dyn_entry(dev, &data); - if (ret == -ENXIO) { - *entries = 0; + if (ret) goto unlock_alu; - } - if (ret) + if (data & masks[DYNAMIC_MAC_TABLE_MAC_EMPTY]) { + *entries = 0; goto unlock_alu; + } ret = ksz_read64(dev, regs[REG_IND_DATA_HI], &buf); if (ret) @@ -997,8 +989,6 @@ int ksz8_fdb_dump(struct ksz_device *dev, int port, u8 src_port; ret = ksz8_r_dyn_mac_table(dev, i, mac, &src_port, &entries); - if (ret == -ENXIO) - return 0; if (ret) return ret; From patchwork Mon Nov 28 11:59:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26675 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609451wrr; Mon, 28 Nov 2022 04:03:43 -0800 (PST) X-Google-Smtp-Source: AA0mqf48yYjUiFyQgUcUXjbGg8EjJtQN1d0NGr76YEK8hCLEDRpwThUrXgbS+8XSJsSwxe/suODd X-Received: by 2002:a62:1507:0:b0:574:8985:109e with SMTP id 7-20020a621507000000b005748985109emr20822511pfv.56.1669637023325; Mon, 28 Nov 2022 04:03:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637023; cv=none; d=google.com; s=arc-20160816; b=KdRuLDnZOhi8MC8forJEOuEo3+OjMedSt9LlkrQ6WDkpgDPDzHlBo9CNjCZ1floTG/ 0AtSOmeE5TupkbUHsIZaBI8cLW6PfQHr2gZktvbTRbHLC/11x17Mm2//aG2s4JptTjHj b0d2a4CgFQz5pTWH6cU+8MzCpvYfGrOE+diuigJVrWbEL4BDi1n5MC7kDvf2o+sfOH/y E3DNyQMskjZ07yOwrpKvoFMw6q+eSxFSoPjULIG+pNDlxMSUyGXkbjcA3Q9q2KxBH8CM Kp30kfOQxlSOQdklvaJ372MNk7m+xaJZunXRMmUq/Z2xmDgNzC970mBlI18QEdy+vVs+ gm9g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=RBjQsgvaEh/t/pDcxkGjwwA0LbYbPR6oyZMQdk3/TZI=; b=lfylhvlkbTQPJUOGyXtuXmOuvB1s8aeu/8zt4rOUoakX1nQ5NkZguqmbqZ4+UbfO5I /wdouwNREJiJ9TSJmwBY8/CORUg8X8YvIhuX63Hfg/2HBNHQBypZzKRzu5N71bkc7Fcs LxMMjAZBAAELAdiOWArbTOxIiChXMnRaPAnrhuTyK+5Uh3NgMCzOyiq7tGnTWb1YAHuo uvuRJiUSKlrNN0ne+LW513p61AzqVZJKAf+l4DouE+qeJECmqXwGwlkmmvH10JIYAGR6 lkrzHt0jLsilUESAFNng3wpFe6hZ7jZ7knF6dhZRVuauBUYxrsS5T1ew1tCG8Of0V4lq Hn7g== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j38-20020a632326000000b0046b208f6affsi11777486pgj.621.2022.11.28.04.03.21; Mon, 28 Nov 2022 04:03:43 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231321AbiK1MB2 (ORCPT + 99 others); Mon, 28 Nov 2022 07:01:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36102 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230375AbiK1MAR (ORCPT ); Mon, 28 Nov 2022 07:00:17 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AA32C18E09 for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnt-0003rq-HO; Mon, 28 Nov 2022 13:00:05 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnr-000o9q-Tq; Mon, 28 Nov 2022 13:00:04 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcno-00Gzg4-0h; Mon, 28 Nov 2022 13:00:00 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 20/26] net: dsa: microchip: make ksz8_r_sta_mac_table() static Date: Mon, 28 Nov 2022 12:59:52 +0100 Message-Id: <20221128115958.4049431-21-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741311306843726?= X-GMAIL-MSGID: =?utf-8?q?1750741311306843726?= It is used only in ksz8795.c, no need to export it. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8.h | 2 -- drivers/net/dsa/microchip/ksz8795.c | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8.h b/drivers/net/dsa/microchip/ksz8.h index a28fa7cd4d98..ed72ec626593 100644 --- a/drivers/net/dsa/microchip/ksz8.h +++ b/drivers/net/dsa/microchip/ksz8.h @@ -19,8 +19,6 @@ void ksz8_flush_dyn_mac_table(struct ksz_device *dev, int port); void ksz8_port_setup(struct ksz_device *dev, int port, bool cpu_port); int ksz8_r_phy(struct ksz_device *dev, u16 phy, u16 reg, u16 *val); int ksz8_w_phy(struct ksz_device *dev, u16 phy, u16 reg, u16 val); -int ksz8_r_sta_mac_table(struct ksz_device *dev, u16 addr, - struct alu_struct *alu); void ksz8_w_sta_mac_table(struct ksz_device *dev, u16 addr, struct alu_struct *alu); void ksz8_r_mib_cnt(struct ksz_device *dev, int port, u16 addr, u64 *cnt); diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 31c77e086a9d..1c08103c9f50 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -456,8 +456,8 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, return ret; } -int ksz8_r_sta_mac_table(struct ksz_device *dev, u16 addr, - struct alu_struct *alu) +static int ksz8_r_sta_mac_table(struct ksz_device *dev, u16 addr, + struct alu_struct *alu) { u32 data_hi, data_lo; const u8 *shifts; From patchwork Mon Nov 28 11:59:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26688 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609698wrr; Mon, 28 Nov 2022 04:04:00 -0800 (PST) X-Google-Smtp-Source: AA0mqf6928EH3niCis2OOGPZTO+6OlaYx1wJOJ/+/2ORudYDQId4eZsW0KPiTpZuqWrvlcawv0r5 X-Received: by 2002:a63:5853:0:b0:477:4a83:8b75 with SMTP id i19-20020a635853000000b004774a838b75mr32772523pgm.519.1669637040485; Mon, 28 Nov 2022 04:04:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637040; cv=none; d=google.com; s=arc-20160816; b=Xoj5DbuqyWaJaRmmsRUdgT2Ae+QkRcGDEPJL1RtaB+5I/Ze4Z5EzgpM7qP6OucA2qc 9GzRfiS9PhTI58mztYYwB7f8tVHmx3UswvlmO5FZMrWfgOakyZC35RYIa2C5AtxR14cr s3BpjKIYoIEF33ykOK0YC4yy3wKM2PWBPFnk/aDQXS4r0lLVXSf5br69oyEfbi5BAu+9 JabdSv3IO4tmGajm3JNnj+QYRA7Rq/I8vHmHno1madRoWudpCJots/yxLoV/cJ38+x7f tJ9L4i2/iJRp23oyI8TwU333gziyM9VjZDT9s1b+Pa9D+5UOLS9PzHx//tblYQq+QUFC WMkw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=sUifnItBRg5VjPWZ7/PnfhglXOlkk/IWBJA6vjSTq30=; b=MTcBHWIvPwVjTUQupybFT5tA4t5EsxndIghQn2GFgHkyK72YHr4nRYgGjI+HvycW19 u7otdx19Uc7PF7l6XBU3I0+C82UCSDB8vOG7kBCZEn2m6kcfn/QU5hgJ+OhmJ6dlQvLN oSZ6NwQVqXSttfLyOR8W8bmp7Y5YNG7sV+9DdUYiOn8Q9e5so88J+I6YNkyzbi4dHLt0 Qi6HaKi4UiiHsghK/jusM/J7VNNh6iSeQcmL0QdWGnoiC4Vj6JvcITv19LTice1b2UfN EjU/Owp+je5xbeSRy/Q66M72KRvgUBx54dzT/+NzZmcK/Rl1pl8XCxetSNnCf05Qnqe/ Kejw== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id lx16-20020a17090b4b1000b0020a97a92a2fsi12978282pjb.135.2022.11.28.04.03.44; Mon, 28 Nov 2022 04:04:00 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231409AbiK1MBK (ORCPT + 99 others); Mon, 28 Nov 2022 07:01:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36098 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229754AbiK1MAQ (ORCPT ); Mon, 28 Nov 2022 07:00:16 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7584B18E01 for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnt-0003qZ-75; Mon, 28 Nov 2022 13:00:05 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnr-000o9X-HP; Mon, 28 Nov 2022 13:00:04 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcno-00GzgG-1I; Mon, 28 Nov 2022 13:00:00 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 21/26] net: dsa: microchip: ksz8_r_sta_mac_table(): do not use error code for empty entries Date: Mon, 28 Nov 2022 12:59:53 +0100 Message-Id: <20221128115958.4049431-22-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741329173500803?= X-GMAIL-MSGID: =?utf-8?q?1750741329173500803?= This is a preparation for the next patch, to make use of read/write errors. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 94 +++++++++++++++++------------ 1 file changed, 54 insertions(+), 40 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 1c08103c9f50..b7487be91f67 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -457,7 +457,7 @@ static int ksz8_r_dyn_mac_table(struct ksz_device *dev, u16 addr, u8 *mac_addr, } static int ksz8_r_sta_mac_table(struct ksz_device *dev, u16 addr, - struct alu_struct *alu) + struct alu_struct *alu, bool *valid) { u32 data_hi, data_lo; const u8 *shifts; @@ -470,28 +470,32 @@ static int ksz8_r_sta_mac_table(struct ksz_device *dev, u16 addr, ksz8_r_table(dev, TABLE_STATIC_MAC, addr, &data); data_hi = data >> 32; data_lo = (u32)data; - if (data_hi & (masks[STATIC_MAC_TABLE_VALID] | - masks[STATIC_MAC_TABLE_OVERRIDE])) { - alu->mac[5] = (u8)data_lo; - alu->mac[4] = (u8)(data_lo >> 8); - alu->mac[3] = (u8)(data_lo >> 16); - alu->mac[2] = (u8)(data_lo >> 24); - alu->mac[1] = (u8)data_hi; - alu->mac[0] = (u8)(data_hi >> 8); - alu->port_forward = - (data_hi & masks[STATIC_MAC_TABLE_FWD_PORTS]) >> - shifts[STATIC_MAC_FWD_PORTS]; - alu->is_override = - (data_hi & masks[STATIC_MAC_TABLE_OVERRIDE]) ? 1 : 0; - data_hi >>= 1; - alu->is_static = true; - alu->is_use_fid = - (data_hi & masks[STATIC_MAC_TABLE_USE_FID]) ? 1 : 0; - alu->fid = (data_hi & masks[STATIC_MAC_TABLE_FID]) >> - shifts[STATIC_MAC_FID]; + + if (!(data_hi & (masks[STATIC_MAC_TABLE_VALID] | + masks[STATIC_MAC_TABLE_OVERRIDE]))) { + *valid = false; return 0; } - return -ENXIO; + + alu->mac[5] = (u8)data_lo; + alu->mac[4] = (u8)(data_lo >> 8); + alu->mac[3] = (u8)(data_lo >> 16); + alu->mac[2] = (u8)(data_lo >> 24); + alu->mac[1] = (u8)data_hi; + alu->mac[0] = (u8)(data_hi >> 8); + alu->port_forward = + (data_hi & masks[STATIC_MAC_TABLE_FWD_PORTS]) >> + shifts[STATIC_MAC_FWD_PORTS]; + alu->is_override = (data_hi & masks[STATIC_MAC_TABLE_OVERRIDE]) ? 1 : 0; + data_hi >>= 1; + alu->is_static = true; + alu->is_use_fid = (data_hi & masks[STATIC_MAC_TABLE_USE_FID]) ? 1 : 0; + alu->fid = (data_hi & masks[STATIC_MAC_TABLE_FID]) >> + shifts[STATIC_MAC_FID]; + + *valid = true; + + return 0; } void ksz8_w_sta_mac_table(struct ksz_device *dev, u16 addr, @@ -969,12 +973,13 @@ int ksz8_fdb_dump(struct ksz_device *dev, int port, for (i = 0; i < dev->info->num_statics; i++) { struct alu_struct alu; + bool valid; - ret = ksz8_r_sta_mac_table(dev, i, &alu); - if (ret == -ENXIO) - continue; + ret = ksz8_r_sta_mac_table(dev, i, &alu, &valid); if (ret) return ret; + if (!valid) + continue; if (!(alu.port_forward & BIT(port))) continue; @@ -1010,20 +1015,25 @@ static int ksz8_add_sta_mac(struct ksz_device *dev, int port, const unsigned char *addr, u16 vid) { struct alu_struct alu; - int index; + int index, ret; int empty = 0; alu.port_forward = 0; for (index = 0; index < dev->info->num_statics; index++) { - if (!ksz8_r_sta_mac_table(dev, index, &alu)) { - /* Found one already in static MAC table. */ - if (!memcmp(alu.mac, addr, ETH_ALEN) && - alu.fid == vid) - break; - /* Remember the first empty entry. */ - } else if (!empty) { - empty = index + 1; + bool valid; + + ret = ksz8_r_sta_mac_table(dev, index, &alu, &valid); + if (ret) + return ret; + if (!valid) { + /* Remember the first empty entry. */ + if (!empty) + empty = index + 1; + continue; } + + if (!memcmp(alu.mac, addr, ETH_ALEN) && alu.fid == vid) + break; } /* no available entry */ @@ -1053,15 +1063,19 @@ static int ksz8_del_sta_mac(struct ksz_device *dev, int port, const unsigned char *addr, u16 vid) { struct alu_struct alu; - int index; + int index, ret; for (index = 0; index < dev->info->num_statics; index++) { - if (!ksz8_r_sta_mac_table(dev, index, &alu)) { - /* Found one already in static MAC table. */ - if (!memcmp(alu.mac, addr, ETH_ALEN) && - alu.fid == vid) - break; - } + bool valid; + + ret = ksz8_r_sta_mac_table(dev, index, &alu, &valid); + if (ret) + return ret; + if (!valid) + continue; + + if (!memcmp(alu.mac, addr, ETH_ALEN) && alu.fid == vid) + break; } /* no available entry */ From patchwork Mon Nov 28 11:59:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26668 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609123wrr; Mon, 28 Nov 2022 04:03:19 -0800 (PST) X-Google-Smtp-Source: AA0mqf43n+8j7Sw3Kxg6xAK3vWx99n31cTXeXBnDitINGq1+UroadrvkGuCv5E8Gaa1MkhB7Y8h4 X-Received: by 2002:a17:902:e74d:b0:186:887b:baa2 with SMTP id p13-20020a170902e74d00b00186887bbaa2mr45028788plf.27.1669636998866; Mon, 28 Nov 2022 04:03:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669636998; cv=none; d=google.com; s=arc-20160816; b=0qkFL1TLawBJHyyTEFKfPpmySTEpnhiIQKoYyjkQEsRUvtKCNfai65ZMSqbCOE9p8Z FrZ90Hw9TQCc3MzjVH+9OtapEDKfPdArnkFTnXPlHaUU436IMmVmlqXBk1lrp9P4Ocny qUvahLJckRUEMrui0TWOtpMqyudKIBAnaqdoUMMf46UcwiVbsuYR62nVsq6bgdf3Vodj BdA3vFo66lt4qHeC+3JN+3R3KgP5YDl16kBy93vsWhIeuf3hTGwl686N83m3JGvc1cBA MWmnHrOqT2qME/0et23ysLCGzEFEo03tvUAK9af9h4U1/TmC7v0aI4QBcKsTFmtc+8Q9 ClZg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=7qXe3iguFHZ1DLDkTinrz5RaXGAq6HxhhR8SQ6berQw=; b=phAv+FIR6mCpLGEtDX8old3Vd4DMPBH7WO6tsDdOFzJ5Ysv1XkaI9UxZjCNRm1IF4m jQ4hu15MXXBtumJweS3KY5KyOQa0D4JK1c24RuHA6OBW95RGXm/quto5VpB4+A2YZfgB CSojajCGthgBv6oTnsdnsZVB8/Uva48qW72oZPIUr0S+SttA9o727chw//tP2G9reW/u he7aPEo/dEUTKzpABZNiBEPFXNA6Cbfo6GmKaLKI9oDb/58+e3M/5EDYjSvLKU4UbRBm krD9FwMx6+but0hsFaVxVz8oIvHd5riAsCzLYZXu9UYRYIwWPltPqs2pa4UYz14/KixR d44A== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 189-20020a6300c6000000b00477d61af548si10746683pga.639.2022.11.28.04.03.00; Mon, 28 Nov 2022 04:03:18 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231551AbiK1MA5 (ORCPT + 99 others); Mon, 28 Nov 2022 07:00:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36132 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231336AbiK1MAQ (ORCPT ); Mon, 28 Nov 2022 07:00:16 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7123F18B19 for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnt-0003r6-Bl; Mon, 28 Nov 2022 13:00:05 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnr-000o9f-Nu; Mon, 28 Nov 2022 13:00:04 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcno-00GzgP-1r; Mon, 28 Nov 2022 13:00:00 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 22/26] net: dsa: microchip: ksz8_r_sta_mac_table(): make use of error values provided by read/write functions Date: Mon, 28 Nov 2022 12:59:54 +0100 Message-Id: <20221128115958.4049431-23-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741285992967117?= X-GMAIL-MSGID: =?utf-8?q?1750741285992967117?= Read/write operations may fail. So, make use of return values. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index b7487be91f67..1de33ceb50de 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -336,19 +336,26 @@ void ksz8_port_init_cnt(struct ksz_device *dev, int port) } } -static void ksz8_r_table(struct ksz_device *dev, int table, u16 addr, u64 *data) +static int ksz8_r_table(struct ksz_device *dev, int table, u16 addr, u64 *data) { const u16 *regs; u16 ctrl_addr; + int ret; regs = dev->info->regs; ctrl_addr = IND_ACC_TABLE(table | TABLE_READ) | addr; mutex_lock(&dev->alu_mutex); - ksz_write16(dev, regs[REG_IND_CTRL_0], ctrl_addr); - ksz_read64(dev, regs[REG_IND_DATA_HI], data); + ret = ksz_write16(dev, regs[REG_IND_CTRL_0], ctrl_addr); + if (ret) + goto unlock_alu; + + ret = ksz_read64(dev, regs[REG_IND_DATA_HI], data); +unlock_alu: mutex_unlock(&dev->alu_mutex); + + return ret; } static void ksz8_w_table(struct ksz_device *dev, int table, u16 addr, u64 data) @@ -463,11 +470,15 @@ static int ksz8_r_sta_mac_table(struct ksz_device *dev, u16 addr, const u8 *shifts; const u32 *masks; u64 data; + int ret; shifts = dev->info->shifts; masks = dev->info->masks; - ksz8_r_table(dev, TABLE_STATIC_MAC, addr, &data); + ret = ksz8_r_table(dev, TABLE_STATIC_MAC, addr, &data); + if (ret) + return ret; + data_hi = data >> 32; data_lo = (u32)data; From patchwork Mon Nov 28 11:59:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26680 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609606wrr; Mon, 28 Nov 2022 04:03:55 -0800 (PST) X-Google-Smtp-Source: AA0mqf4KXYlWKbDmqIK/gWnzeIKsOgKdbTj69rLR0zt/ymyO/hU04I2wdGOthp1VnvDK0g//8V+Y X-Received: by 2002:a17:90a:fe13:b0:218:78e0:41d8 with SMTP id ck19-20020a17090afe1300b0021878e041d8mr52970044pjb.212.1669637034883; Mon, 28 Nov 2022 04:03:54 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637034; cv=none; d=google.com; s=arc-20160816; b=B56ua0CxNib1qctD1LABzn26D0zGnmJ6xCs6UOaaS2jY7snc27B7sECR+6cglGDXQh g47iD+vIubHCfhNBj4Wfbes1X83xQBLvkhQKJba2cHG2s9aFVrpzx5Zf3v9CS9njKX4H Rp9vpDeReVW4GjxJ9CM9cFE3WIYnSlgNVb+9I/bj3vmMu1+3ZfjLVOQ4JMBs965KTvQY oSfr7koGfVgn5AeHgC7+CW4mEqE7q2z/L0rZts3sB4CPUeLNn6Fpz+koo3Gs8LMOM1zZ /ForvLjQy8Iw1N2VdBUjWxeuqbpuH/on+4laq+GjLAF01fqmPj3w2n1fWmAbN6u09we9 V3Eg== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=fO42kFMDEUZ/mcozk5uaFycIG6YhTIoxNOe4fj1sztQ=; b=ZWNiQQHLTdbv6P/G+eY1v6M+EokpeGs9TVjHzr32q+9aeomfdgQ/PgHBBPF3R49TWx X4shLnGQgBXamlLFNw9Ui0fpVmP0bjcI2IZgodjI0b6HT4NqeXRqWMJCWwSHulo7ppek QpJZrkMet4rtlD8eiwB6xtrHZdNNudB7kWeQe20dHf0JtStaksIBrSqAZBzGVAqPm0fK EMci2JJvvV6Pq9HvEuy6lqkLNidCTLwLJ6+5XMDRs0iJetCVxsSMtkC+PGBoUt2M5KVS s8TZf6QcUAyyAX0A/jOeN/+ZVe7Fy7DYFm4Os6aKU0BwKc2xihxD7MrRyfFDY+GTXmyY 7w6Q== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b16-20020a170902d51000b00174418919a6si12572259plg.513.2022.11.28.04.03.34; Mon, 28 Nov 2022 04:03:54 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231510AbiK1MCV (ORCPT + 99 others); Mon, 28 Nov 2022 07:02:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36268 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231404AbiK1MAT (ORCPT ); Mon, 28 Nov 2022 07:00:19 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1C19E18B19 for ; Mon, 28 Nov 2022 04:00:18 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcns-0003nc-ES; Mon, 28 Nov 2022 13:00:04 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnq-000o95-Og; Mon, 28 Nov 2022 13:00:03 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcno-00GzgX-2K; Mon, 28 Nov 2022 13:00:00 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 23/26] net: dsa: microchip: make ksz8_w_sta_mac_table() static Date: Mon, 28 Nov 2022 12:59:55 +0100 Message-Id: <20221128115958.4049431-24-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741323302959789?= X-GMAIL-MSGID: =?utf-8?q?1750741323302959789?= ksz8_w_sta_mac_table() is used only in ksz8795.c. So, make it static. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8.h | 2 -- drivers/net/dsa/microchip/ksz8795.c | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8.h b/drivers/net/dsa/microchip/ksz8.h index ed72ec626593..e3d1bbde008a 100644 --- a/drivers/net/dsa/microchip/ksz8.h +++ b/drivers/net/dsa/microchip/ksz8.h @@ -19,8 +19,6 @@ void ksz8_flush_dyn_mac_table(struct ksz_device *dev, int port); void ksz8_port_setup(struct ksz_device *dev, int port, bool cpu_port); int ksz8_r_phy(struct ksz_device *dev, u16 phy, u16 reg, u16 *val); int ksz8_w_phy(struct ksz_device *dev, u16 phy, u16 reg, u16 val); -void ksz8_w_sta_mac_table(struct ksz_device *dev, u16 addr, - struct alu_struct *alu); void ksz8_r_mib_cnt(struct ksz_device *dev, int port, u16 addr, u64 *cnt); void ksz8_r_mib_pkt(struct ksz_device *dev, int port, u16 addr, u64 *dropped, u64 *cnt); diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 1de33ceb50de..9c1450782314 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -509,8 +509,8 @@ static int ksz8_r_sta_mac_table(struct ksz_device *dev, u16 addr, return 0; } -void ksz8_w_sta_mac_table(struct ksz_device *dev, u16 addr, - struct alu_struct *alu) +static void ksz8_w_sta_mac_table(struct ksz_device *dev, u16 addr, + struct alu_struct *alu) { u32 data_hi, data_lo; const u8 *shifts; From patchwork Mon Nov 28 11:59:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26671 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609303wrr; Mon, 28 Nov 2022 04:03:31 -0800 (PST) X-Google-Smtp-Source: AA0mqf4nhNAnGu0D0WCRplMu0CrRkQ7Kt/rNm4EmyPtmOHIt1YPDoND2zdW8I6VeSampmgozBlYt X-Received: by 2002:a17:902:e40a:b0:189:7cf:91ce with SMTP id m10-20020a170902e40a00b0018907cf91cemr44941527ple.155.1669637008163; Mon, 28 Nov 2022 04:03:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637008; cv=none; d=google.com; s=arc-20160816; b=GFW2uRWJKjBDhIwuXtTJX1OPfU1ba1NB/aKar0ovFNLhozIG2XymdGs8ykwrlFQpCQ R3YTB8rbFpYtd4Efq4AZvOP/b5bRbla+FWGXrrJCnGsCydsDJpVwou/pSTgXTy2CVc9p cMa/W88hA9IHPh5tzBkSCwl3IzFFDk0F5jGar+8DUy4yXL9JYwBeuN36glkrIewRuSVq 8CONbxaa7Uiz1Y5aMbwlAuYl5p5o8jp0ZE1r2usmTMFSr9YJPwNkBrA28mDJTXjANswO 5zYfB3wMww5KzSku+bQ/U0kHU4rcSaRRwEp+mw0JwkgU9l2U1AN+2Y9jt18DW/U6Ar1R zjQw== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=3YJK5TzuOO5SSLtwC5FrQsT3f+cpkG004t4sufj/f2E=; b=ZCFQlUHEnBSnJ3jYKgJU0oiB9Eepl6+1xmSXg9ZVKugQjlE8V+23hznzBfCiEp+NTQ zfRmBlN9fpNfYLXgjqHiWEKVr4XHqgPLj2j81EMZV2plfdxOCnZyHaq/8tnWfTmDgtyV s6tgyIKsreyMMSks2CwLQ4nEc/R7C6kuI7BG6jIUw9MVohGHNeirMFZl175A+iIsdQQP iiWtvfVVrw3IhWljVZpF8EVpB6l7F502zdb38D/Jv2BH0+uuohdI8LHDsCXW+mT8pRTS qH1R3SDgOwR1OGUt6UmGkLRmD0kSmQafZeCfQbd471WEuoWTBBEqduBiryk0PcR6dCJd jcHw== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id d11-20020a65588b000000b00477c217a5eesi11793399pgu.317.2022.11.28.04.03.06; Mon, 28 Nov 2022 04:03:28 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231630AbiK1MBe (ORCPT + 99 others); Mon, 28 Nov 2022 07:01:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36180 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231368AbiK1MAR (ORCPT ); Mon, 28 Nov 2022 07:00:17 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8AF09186F9 for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnu-0003s1-3m; Mon, 28 Nov 2022 13:00:06 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnr-000o9s-Vk; Mon, 28 Nov 2022 13:00:04 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcno-00Gzgi-2m; Mon, 28 Nov 2022 13:00:00 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 24/26] net: dsa: microchip: ksz8_w_sta_mac_table(): make use of error values provided by read/write functions Date: Mon, 28 Nov 2022 12:59:56 +0100 Message-Id: <20221128115958.4049431-25-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741295434724718?= X-GMAIL-MSGID: =?utf-8?q?1750741295434724718?= Read/write operations may fail. So, make use of return values. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 33 ++++++++++++++++------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 9c1450782314..ea08bdea193e 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -358,19 +358,26 @@ static int ksz8_r_table(struct ksz_device *dev, int table, u16 addr, u64 *data) return ret; } -static void ksz8_w_table(struct ksz_device *dev, int table, u16 addr, u64 data) +static int ksz8_w_table(struct ksz_device *dev, int table, u16 addr, u64 data) { const u16 *regs; u16 ctrl_addr; + int ret; regs = dev->info->regs; ctrl_addr = IND_ACC_TABLE(table) | addr; mutex_lock(&dev->alu_mutex); - ksz_write64(dev, regs[REG_IND_DATA_HI], data); - ksz_write16(dev, regs[REG_IND_CTRL_0], ctrl_addr); + ret = ksz_write64(dev, regs[REG_IND_DATA_HI], data); + if (ret) + goto unlock_alu; + + ret = ksz_write16(dev, regs[REG_IND_CTRL_0], ctrl_addr); +unlock_alu: mutex_unlock(&dev->alu_mutex); + + return ret; } static int ksz8_valid_dyn_entry(struct ksz_device *dev, u8 *data) @@ -509,8 +516,8 @@ static int ksz8_r_sta_mac_table(struct ksz_device *dev, u16 addr, return 0; } -static void ksz8_w_sta_mac_table(struct ksz_device *dev, u16 addr, - struct alu_struct *alu) +static int ksz8_w_sta_mac_table(struct ksz_device *dev, u16 addr, + struct alu_struct *alu) { u32 data_hi, data_lo; const u8 *shifts; @@ -538,7 +545,8 @@ static void ksz8_w_sta_mac_table(struct ksz_device *dev, u16 addr, data_hi &= ~masks[STATIC_MAC_TABLE_OVERRIDE]; data = (u64)data_hi << 32 | data_lo; - ksz8_w_table(dev, TABLE_STATIC_MAC, addr, data); + + return ksz8_w_table(dev, TABLE_STATIC_MAC, addr, data); } static void ksz8_from_vlan(struct ksz_device *dev, u32 vlan, u8 *fid, @@ -1065,9 +1073,8 @@ static int ksz8_add_sta_mac(struct ksz_device *dev, int port, /* Need a way to map VID to FID. */ alu.fid = vid; } - ksz8_w_sta_mac_table(dev, index, &alu); - return 0; + return ksz8_w_sta_mac_table(dev, index, &alu); } static int ksz8_del_sta_mac(struct ksz_device *dev, int port, @@ -1091,16 +1098,14 @@ static int ksz8_del_sta_mac(struct ksz_device *dev, int port, /* no available entry */ if (index == dev->info->num_statics) - goto exit; + return 0; /* clear port */ alu.port_forward &= ~BIT(port); if (!alu.port_forward) alu.is_static = false; - ksz8_w_sta_mac_table(dev, index, &alu); -exit: - return 0; + return ksz8_w_sta_mac_table(dev, index, &alu); } int ksz8_mdb_add(struct ksz_device *dev, int port, @@ -1424,9 +1429,7 @@ int ksz8_enable_stp_addr(struct ksz_device *dev) alu.is_override = true; alu.port_forward = dev->info->cpu_ports; - ksz8_w_sta_mac_table(dev, 0, &alu); - - return 0; + return ksz8_w_sta_mac_table(dev, 0, &alu); } int ksz8_setup(struct dsa_switch *ds) From patchwork Mon Nov 28 11:59:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26678 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609545wrr; Mon, 28 Nov 2022 04:03:50 -0800 (PST) X-Google-Smtp-Source: AA0mqf6PCYwVWBGcFaEf0Fws4zDPLchMfR9qw3t411L4TRBdR00A5lzsE5s6TZYrvhc726gu2ZKX X-Received: by 2002:a65:560a:0:b0:477:382d:dd38 with SMTP id l10-20020a65560a000000b00477382ddd38mr27357117pgs.264.1669637030028; Mon, 28 Nov 2022 04:03:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637030; cv=none; d=google.com; s=arc-20160816; b=tzUq03LQICBvofqH8rmM+7rDO6SL1tP3G9740jMHvI6rQnVTPN2mQUBRwvWGkMf+DO fJxqtLQXfY/7DvFwNZ00Y0+QAxnRjfcNV8PoNfr6gOdsoBROw11gclfhiaLqKqEC159l HwcgvMlKAP6nMt3y4v1PxwEqmA38+/KUYyMTURYJtziGD7bn4oTnnNvgyN4PlGZ5TjUP KM4jye9rtqm1QAYJVEJ1PzLonfbOJG2AeTrLyfoTWcTUywo1vnTIp0pNBCnzjh2oGmMh oO66I0JJItAYjhyXRFrc0baUg/BCMb0FTfswPAkr/vCie3xJOzqbSZOuaynpxskxdRgI q3aA== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=xabwenohFWhBF4NhZTjirJDIYiuxKWJYunFGEM1zxfc=; b=VR9X7XugJHL3WpziZIGQDoYX81soVF5I4Dzcup7LD6AgTigoivLv4Tj5o8QR2LLM/m vImjNQz6ciIogb5FWWD5yyYnuOfu4ry6hCUwWYpv6J2Piaipi4QLoR36O4XYawupX8BE TbBv8D/e8YRHsPFxnOf3RvdDWqwWtq5z5K3ReYjqOhP7GFsdVteHd3F9scJ4OihCNIr4 ve2BM40QK60aJT2El6cNTRvqHuXqVN1c/r1C78aIiuxos35gc6XGrmA3XOKi+o2cfOB/ 1auq/s6sDjOrAHH536isBjf+0IBRHylEc7EdAMYDBdbkSevL8glWk7IHvzJB29U4ti1C /DDA== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c14-20020a63350e000000b00477aeffa74fsi12309409pga.107.2022.11.28.04.03.28; Mon, 28 Nov 2022 04:03:50 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231472AbiK1MAt (ORCPT + 99 others); Mon, 28 Nov 2022 07:00:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36104 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230506AbiK1MAP (ORCPT ); Mon, 28 Nov 2022 07:00:15 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7129C18B20 for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnt-0003rM-G7; Mon, 28 Nov 2022 13:00:05 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcnr-000o9g-P3; Mon, 28 Nov 2022 13:00:04 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcno-00Gzgr-3H; Mon, 28 Nov 2022 13:00:00 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 25/26] net: dsa: microchip: remove ksz_port:on variable Date: Mon, 28 Nov 2022 12:59:57 +0100 Message-Id: <20221128115958.4049431-26-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741318658896428?= X-GMAIL-MSGID: =?utf-8?q?1750741318658896428?= The only place where this variable would be set to false is the ksz8_config_cpu_port() function. But it is done in a bogus way: for (i = 0; i < dev->phy_port_cnt; i++) { if (i == dev->phy_port_cnt) <--- will be never executed. break; p->on = 1; So, we never have a situation where p->on = 0. In this case, we can just remove it. Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8795.c | 20 +------------------- drivers/net/dsa/microchip/ksz_common.h | 1 - 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index ea08bdea193e..618366fadfb5 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -952,7 +952,6 @@ void ksz8_flush_dyn_mac_table(struct ksz_device *dev, int port) { u8 learn[DSA_MAX_PORTS]; int first, index, cnt; - struct ksz_port *p; const u16 *regs; regs = dev->info->regs; @@ -966,9 +965,6 @@ void ksz8_flush_dyn_mac_table(struct ksz_device *dev, int port) cnt = dev->info->port_cnt; } for (index = first; index < cnt; index++) { - p = &dev->ports[index]; - if (!p->on) - continue; ksz_pread8(dev, index, regs[P_STP_CTRL], &learn[index]); if (!(learn[index] & PORT_LEARN_DISABLE)) ksz_pwrite8(dev, index, regs[P_STP_CTRL], @@ -976,9 +972,6 @@ void ksz8_flush_dyn_mac_table(struct ksz_device *dev, int port) } ksz_cfg(dev, S_FLUSH_TABLE_CTRL, SW_FLUSH_DYN_MAC_TABLE, true); for (index = first; index < cnt; index++) { - p = &dev->ports[index]; - if (!p->on) - continue; if (!(learn[index] & PORT_LEARN_DISABLE)) ksz_pwrite8(dev, index, regs[P_STP_CTRL], learn[index]); } @@ -1368,25 +1361,14 @@ void ksz8_config_cpu_port(struct dsa_switch *ds) ksz_cfg(dev, regs[S_TAIL_TAG_CTRL], masks[SW_TAIL_TAG_ENABLE], true); - p = &dev->ports[dev->cpu_port]; - p->on = 1; - ksz8_port_setup(dev, dev->cpu_port, true); for (i = 0; i < dev->phy_port_cnt; i++) { - p = &dev->ports[i]; - ksz_port_stp_state_set(ds, i, BR_STATE_DISABLED); - - /* Last port may be disabled. */ - if (i == dev->phy_port_cnt) - break; - p->on = 1; } for (i = 0; i < dev->phy_port_cnt; i++) { p = &dev->ports[i]; - if (!p->on) - continue; + if (!ksz_is_ksz88x3(dev)) { ksz_pread8(dev, i, regs[P_REMOTE_STATUS], &remote); if (remote & KSZ8_PORT_FIBER_MODE) diff --git a/drivers/net/dsa/microchip/ksz_common.h b/drivers/net/dsa/microchip/ksz_common.h index 055d61ff3fb8..504ad07842a0 100644 --- a/drivers/net/dsa/microchip/ksz_common.h +++ b/drivers/net/dsa/microchip/ksz_common.h @@ -87,7 +87,6 @@ struct ksz_port { int stp_state; struct phy_device phydev; - u32 on:1; /* port is not disabled by hardware */ u32 fiber:1; /* port is fiber */ u32 force:1; u32 read:1; /* read MIB counters in background */ From patchwork Mon Nov 28 11:59:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26665 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5608652wrr; Mon, 28 Nov 2022 04:02:44 -0800 (PST) X-Google-Smtp-Source: AA0mqf7ouhxROFiZRpvvPzHIyFrh/4pSEpWWDxrGuHgMQDHOxWm9vbWKjauk+xBMiNsCMjezTcCa X-Received: by 2002:a17:902:9881:b0:188:62b8:2278 with SMTP id s1-20020a170902988100b0018862b82278mr37440260plp.96.1669636964077; Mon, 28 Nov 2022 04:02:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669636964; cv=none; d=google.com; s=arc-20160816; b=Y4fumudx/8Eq6xnbp/sHHe3KpuZUPG6t8zlG/w4x8Fsjz6ghF1RUTo0sioYehX+jm8 w25cRQUtnkr5iWUzEGN09i/QcVhPl9yE/HYqZqvqY8n8UTJ5U9AAs+2E1w9HHmWSTR2Z qvpAH34u8TcgKsYjVUHCJcGd2dKIMSCyqaQkHki5svOlrATyDstoq9cAGEmGqapiBKOS tp+tQfnR29jLiRpldurG3uIEYEdCV87DDD8JzBtOnJlRJlySFzraS8jtrj/iNnvz4Nts MBXIBzvkgymXrSI8qijEELaOsTl1HgHRzcRnh9IibVa8yke8/WXk7pDmailUMeQlc6U/ fQ0Q== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=8Cl82Xs+0809g+19AM06RR9a7jRCRYWDnMuUNXReihM=; b=T1oMcTSd3z/7CAcCCPOzS4bKnyH/+1d52/w8fQTH/nkSAv78YiGY7hjG1KKD99fTTu 0JhHNlyEgJ/MNNNPmXwWy5Quexxlke5BnO5El0MKcLQwECHG3RtuFEJ6hkZWT/UulRs8 uxrGKlupRa48l2A63Yp0r+Txysk0EB+n5il16/ftpYgz777V338/XtNVK7GL3vf5ROwR 3oxKz0dFW6C7DhJbL6Gsy43JAGhQWWgpfjl4pXz2QxKSsDeaICnNpKteNCwphUieFgw0 Ol4VLBhVXCbtot/yMqXI7FW6PGgV42wxG7mPpy5tY+tvjatZI8L4XWVHdltsEhtdewQL jl/Q== ARC-Authentication-Results: i=1; mx.google.com; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l12-20020a170902f68c00b001897bfc97fesi3837673plg.54.2022.11.28.04.02.26; Mon, 28 Nov 2022 04:02:44 -0800 (PST) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231548AbiK1MAy (ORCPT + 99 others); Mon, 28 Nov 2022 07:00:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36130 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231180AbiK1MAQ (ORCPT ); Mon, 28 Nov 2022 07:00:16 -0500 Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 710E6186FC for ; Mon, 28 Nov 2022 04:00:14 -0800 (PST) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozcnu-0003sV-Ci; Mon, 28 Nov 2022 13:00:06 +0100 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1ozcns-000o9z-8d; Mon, 28 Nov 2022 13:00:05 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcno-00Gzh0-3k; Mon, 28 Nov 2022 13:00:00 +0100 From: Oleksij Rempel To: Woojung Huh , UNGLinuxDriver@microchip.com, Andrew Lunn , Vivien Didelot , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Arun.Ramadoss@microchip.com Subject: [PATCH v1 26/26] net: dsa: microchip: ksz8: do not force flow control by default Date: Mon, 28 Nov 2022 12:59:58 +0100 Message-Id: <20221128115958.4049431-27-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128115958.4049431-1-o.rempel@pengutronix.de> References: <20221128115958.4049431-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1750741249199207548?= X-GMAIL-MSGID: =?utf-8?q?1750741249199207548?= Make flow control configurable by moving it to ksz8_phylink_mac_link_up() Signed-off-by: Oleksij Rempel --- drivers/net/dsa/microchip/ksz8.h | 4 ++ drivers/net/dsa/microchip/ksz8795.c | 54 ++++++++++++++++++++++---- drivers/net/dsa/microchip/ksz_common.c | 1 + 3 files changed, 51 insertions(+), 8 deletions(-) diff --git a/drivers/net/dsa/microchip/ksz8.h b/drivers/net/dsa/microchip/ksz8.h index e3d1bbde008a..77439d9c5fc2 100644 --- a/drivers/net/dsa/microchip/ksz8.h +++ b/drivers/net/dsa/microchip/ksz8.h @@ -56,5 +56,9 @@ int ksz8_switch_detect(struct ksz_device *dev); int ksz8_switch_init(struct ksz_device *dev); void ksz8_switch_exit(struct ksz_device *dev); int ksz8_change_mtu(struct ksz_device *dev, int port, int mtu); +void ksz8_phylink_mac_link_up(struct ksz_device *dev, int port, + unsigned int mode, phy_interface_t interface, + struct phy_device *phydev, int speed, int duplex, + bool tx_pause, bool rx_pause); #endif diff --git a/drivers/net/dsa/microchip/ksz8795.c b/drivers/net/dsa/microchip/ksz8795.c index 618366fadfb5..4782747b7b61 100644 --- a/drivers/net/dsa/microchip/ksz8795.c +++ b/drivers/net/dsa/microchip/ksz8795.c @@ -1374,12 +1374,52 @@ void ksz8_config_cpu_port(struct dsa_switch *ds) if (remote & KSZ8_PORT_FIBER_MODE) p->fiber = 1; } - if (p->fiber) - ksz_port_cfg(dev, i, regs[P_STP_CTRL], - PORT_FORCE_FLOW_CTRL, true); - else - ksz_port_cfg(dev, i, regs[P_STP_CTRL], - PORT_FORCE_FLOW_CTRL, false); + } +} + +void ksz8_phylink_mac_link_up(struct ksz_device *dev, int port, + unsigned int mode, phy_interface_t interface, + struct phy_device *phydev, int speed, int duplex, + bool tx_pause, bool rx_pause) +{ + struct dsa_switch *ds = dev->ds; + struct ksz_port *p; + u8 ctrl = 0; + + p = &dev->ports[port]; + + if (dsa_upstream_port(ds, port)) { + u8 mask = SW_HALF_DUPLEX_FLOW_CTRL | SW_HALF_DUPLEX | + SW_FLOW_CTRL | SW_10_MBIT; + + if (duplex) { + if (tx_pause && rx_pause) + ctrl |= SW_FLOW_CTRL; + } else { + ctrl |= SW_HALF_DUPLEX; + if (tx_pause && rx_pause) + ctrl |= SW_HALF_DUPLEX_FLOW_CTRL; + } + + if (speed == SPEED_10) + ctrl |= SW_10_MBIT; + + ksz_rmw8(dev, REG_SW_CTRL_4, mask, ctrl); + + p->phydev.speed = speed; + } else { + const u16 *regs = dev->info->regs; + + if (duplex) { + if (tx_pause && rx_pause) + ctrl |= PORT_FORCE_FLOW_CTRL; + } else { + if (tx_pause && rx_pause) + ctrl |= PORT_BACK_PRESSURE; + } + + ksz_rmw8(dev, regs[P_STP_CTRL], PORT_FORCE_FLOW_CTRL | + PORT_BACK_PRESSURE, ctrl); } } @@ -1431,8 +1471,6 @@ int ksz8_setup(struct dsa_switch *ds) */ ds->vlan_filtering_is_global = true; - ksz_cfg(dev, S_REPLACE_VID_CTRL, SW_FLOW_CTRL, true); - /* Enable automatic fast aging when link changed detected. */ ksz_cfg(dev, S_LINK_AGING_CTRL, SW_LINK_AUTO_AGING, true); diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c index 171cb0063fbf..bfdb4f4f36cc 100644 --- a/drivers/net/dsa/microchip/ksz_common.c +++ b/drivers/net/dsa/microchip/ksz_common.c @@ -207,6 +207,7 @@ static const struct ksz_dev_ops ksz8_dev_ops = { .mirror_add = ksz8_port_mirror_add, .mirror_del = ksz8_port_mirror_del, .get_caps = ksz8_get_caps, + .phylink_mac_link_up = ksz8_phylink_mac_link_up, .config_cpu_port = ksz8_config_cpu_port, .enable_stp_addr = ksz8_enable_stp_addr, .reset = ksz8_reset_switch,