From patchwork Mon Nov 28 12:00:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26692 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610023wrr; Mon, 28 Nov 2022 04:04:21 -0800 (PST) X-Google-Smtp-Source: AA0mqf7gDVI71PJQLg+UuSyR7uy1awq27dYLwYjC4iSUzZx9sBgFcYOyKlwtNDPGxXFnDYAxyeBF X-Received: by 2002:a17:902:ab89:b0:185:3659:1ce9 with SMTP id f9-20020a170902ab8900b0018536591ce9mr30194876plr.26.1669637060985; Mon, 28 Nov 2022 04:04:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637060; cv=none; d=google.com; s=arc-20160816; b=iLVO4CKN7bv5Nvgs4afFtvvyMIH5Z9+p/2Id7iE0xHdxt8oYknDUHOKWcbckHX9b2o LHA0FG1CzNzaeBcrGdZte1JWcioxWWpJ/j5XRy2Mdyyw23SgqHS6WjdWmA7iuyQodCZS tLEEM60nkHpNFVuJTKQxUWsORqZdHsLYoLCMy1FpOhOTXxAEFQFGqVBdW7wgDfctCf33 3op54jPekVhY8qvfue2c7di2u5PDg09TyrqFMKkroWbsO7dJ6Fmc/ZbCsU9ra/pnWGTs TYhx3S+800b7rbnCZDtGCj9msoMDjS161iYGRnFZB2KJeEAVRZXFF+/iNIBXUYiuheOM eMRw== 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=VSe8TRAH74+Dm2/QV/ygm591RGz4QkgBwGY5EjojSKiDslTHQtoXvwYDCPUMOOyLgR 0nLSnpldqaAhkb+q6vyZ3yaYPrG/9OWl2jlsAV5r6lK+G99ZQCGqY6C5fyRLMggQBKpM Tjt0XHk5FlqH0lu/ykMbFJ9/UiXfLDOJIUlWWEm4KZuIpYsoQZisUUs5wBIqjDhoqfLf ASa1ThW3yvi7MfrFZpg+2JocziR+fucU/pxAJtDMbGpv77mTJVqozH5xXjvbN3TNm+4C QMU2XqPej2gkDIeAR3DLcNlGXRC+/rTuk8Q5D7CTp0vEKs5IepiDy3g8VWBmeLbwXUxW 8Cbw== 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 f9-20020a631009000000b0042b85da3a53si11374406pgl.473.2022.11.28.04.04.04; Mon, 28 Nov 2022 04:04:20 -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 S231612AbiK1MCy (ORCPT + 99 others); Mon, 28 Nov 2022 07:02:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36182 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231480AbiK1MAn (ORCPT ); Mon, 28 Nov 2022 07:00:43 -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 3502318E2B for ; Mon, 28 Nov 2022 04:00:43 -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 1ozcoO-0005Fw-RA; Mon, 28 Nov 2022 13:00:36 +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 1ozcoN-000oAW-CB; Mon, 28 Nov 2022 13:00:36 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoM-00H6Le-Vr; Mon, 28 Nov 2022 13:00:34 +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 13:00:09 +0100 Message-Id: <20221128120034.4075562-2-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741350465987104?= X-GMAIL-MSGID: =?utf-8?q?1750741350465987104?= 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 12:00:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26691 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5609967wrr; Mon, 28 Nov 2022 04:04:17 -0800 (PST) X-Google-Smtp-Source: AA0mqf6paT2nw8sdtTmq0ufKG3ZpYFAMrGYtFfINJ9Ce4esvZZC/nU+3C9DTAhg8CPI3aoksPz0M X-Received: by 2002:a63:f012:0:b0:477:b658:c2ea with SMTP id k18-20020a63f012000000b00477b658c2eamr23771473pgh.598.1669637056780; Mon, 28 Nov 2022 04:04:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637056; cv=none; d=google.com; s=arc-20160816; b=y/x3HsEMhzzZCwYv01K9uE+ylRiY+9eiWKvfDEztmUGtcnjcRHmASDaPeJUF7BlXZG KeRsivTPz0qXl3l8tmFEPh/3CurW6uH5kBZm59CS9U9IotwqC5Ktz7KAUdnA1F9pAATz DBkfMLEKPm3Pzw2xNEKvBpI0g3tCWMsCQR+wHi9ExpTXmE+E0mb3H+isXLUPDsl3aqpK eUqtvAu66+BREwzMnHT60pP3xQE5vmcrXqo8WE/Xm49Hxma1/oQBBoHoE1KJ4qQei/VH +KiuzPPgxc6XR0A5xid0kg67ui2MdyYEIGipgv5Tl9lVW5yz5BoKrXo+K3UrQshKUxqJ cMeg== 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=geo+ob+wjYHrbol0eV0eVE/vipTFSbjmUiwYfOrrOc+80tCeY56Hc2ZXLAySRY2Dya cRhV6vQEy5u+f2N2OghCoXq6PRCrvzFuKztyN5S6oiA32nwUIFGQBSDdLgEf2qxMd/oT y8Z2d8HrluafQyKIcWdnyALDuq4cGf+NrjRtSyIWFAOldsICwwdIySVfTN9iN/I8b9Nj o2XDM7b32GcDa2rrbWH5UdMydmeQOp++KAFgaFyE7Dc2t7wKdwBDMUs5GBq/lKkYDEeF up+dOoMfg36wjg5WWeqyLvV11dSCBx+HPlFo6jK9Zpe1xq/l3unKbXT5GnIYk4l9eYoj siBQ== 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 y20-20020a170902b49400b0017f75654a51si10699478plr.245.2022.11.28.04.03.57; Mon, 28 Nov 2022 04:04:16 -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 S231544AbiK1MCo (ORCPT + 99 others); Mon, 28 Nov 2022 07:02:44 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36500 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231477AbiK1MAn (ORCPT ); Mon, 28 Nov 2022 07:00:43 -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 BB7FA18E1E for ; Mon, 28 Nov 2022 04:00:42 -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 1ozcoO-0005FY-Js; Mon, 28 Nov 2022 13:00:36 +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 1ozcoN-000oAQ-4c; Mon, 28 Nov 2022 13:00:35 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoN-00H6Lt-2S; Mon, 28 Nov 2022 13:00:35 +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 13:00:10 +0100 Message-Id: <20221128120034.4075562-3-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741346592994590?= X-GMAIL-MSGID: =?utf-8?q?1750741346592994590?= 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 12:00:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26700 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610300wrr; Mon, 28 Nov 2022 04:04:42 -0800 (PST) X-Google-Smtp-Source: AA0mqf61XNmzDETHOKqMd51lMmBi9pNcWh5cOlrJYxUHKYdIzYU8PRzeT/GkPH+TMb8ZYaPlxqaH X-Received: by 2002:a63:2361:0:b0:45f:f8df:108e with SMTP id u33-20020a632361000000b0045ff8df108emr26283362pgm.127.1669637082501; Mon, 28 Nov 2022 04:04:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637082; cv=none; d=google.com; s=arc-20160816; b=pN9Qz61niraKYlfu5zcZfGfyhCW2znqxTzk1FPSO87DxkeA6eY2haK0+Xu1U5BwxkA S3O0qHtE9upar+mFTqiZ4v6o9Yn3o6aDCK1eyebNVOOMr4rpVIoDI05LYo7PUp0IvF9X IDgzWgdjRGcpequ2m6i0kfGL4lR17v+Hcts0rPwPBHvaeDtJERbCvuXpkfacpRjTTc8r wkh2M68b0iV6expt2r0SvFHnN0v3PXPk+uu0jGsq6DKwr2YBx9/qdfU+Nmp0rh7PFf/b Ux5Sp2ROSR9kIAiB7nddex6IdCbqU0gZKm5gZ3VXDdk+JGPTVrmKphFOUxyBNLOeAv9j 1nhA== 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=OnvikJfEeEkOXdU6U9GWTk4IKGqzs2IABJJUxrfGViiABrlfE/l7RFj+EYxbDChi56 YET2Ufg/xwhF+GYmFHt7MaIQiPTzg/rGu+qSpw0Yp07ex4kpS+6aU5yRco8+1YOdxWDg 3TAORUTayUhl1+4naYrXGklHTJc1gh8sCV5flafUFDO70Z0yaeFURp1LzwdsPI3+6n3V h3JCRoVrULYmEa9GCP42neDcyI5fJJ55Oug0kgYZZqGPnWaETFMc9Rs3uBm5rn+p2xLq 2uQqhGCE5w7I/PbTJ+tW8Azez7ULcTuO6cRjFHf9e17L9nRVUls9N5R4bezndk/CU4Nx 7y8Q== 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 d8-20020aa78e48000000b005633766252asi10139053pfr.313.2022.11.28.04.04.26; Mon, 28 Nov 2022 04:04:42 -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 S231708AbiK1MD2 (ORCPT + 99 others); Mon, 28 Nov 2022 07:03:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231492AbiK1MAq (ORCPT ); Mon, 28 Nov 2022 07:00:46 -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 D74E31A04E for ; Mon, 28 Nov 2022 04:00:45 -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 1ozcoR-0005Hi-4h; Mon, 28 Nov 2022 13:00:39 +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 1ozcoP-000oB3-GF; Mon, 28 Nov 2022 13:00:38 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoN-00H6MF-4s; Mon, 28 Nov 2022 13:00:35 +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 13:00:11 +0100 Message-Id: <20221128120034.4075562-4-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741373214058174?= X-GMAIL-MSGID: =?utf-8?q?1750741373214058174?= 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 12:00:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26701 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610364wrr; Mon, 28 Nov 2022 04:04:47 -0800 (PST) X-Google-Smtp-Source: AA0mqf7szeAyar5BoMHC5rRfQG9EMcKGnp2xhVrGfG/b+zC804UbO4WU03tQH9o5Qip+Tc4qvDTp X-Received: by 2002:a63:ed4f:0:b0:438:a751:f8fa with SMTP id m15-20020a63ed4f000000b00438a751f8famr45275934pgk.601.1669637086490; Mon, 28 Nov 2022 04:04:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637086; cv=none; d=google.com; s=arc-20160816; b=P5zqlpQ8Ubqlg/7UR+pGqAL1QwUu8q65Fez7AaxqLGeCJONJ406+rEWW7XTqv3jubP r3sjUuCcV2oCPcrn6Cm7LB3mmJ3CyXwAL1aqky8cYsvgU7CfYFFr72mxC0ujXCzssBSY +jSowu5kxxoVXitCF9XUMFymern3E/ZlnwyvotcGlL+oWDM197M1yzx8E6OHEGT7b+IU /lInmqHT/J5wimppQSBylrfukJaLn+eHS6tdwsPzgnwiq5kVDqxAip11hBjLl+9q+gQ9 3qM0BO6eQ+1a24k/YCtx56PJSp5MOd8L/FGX3F7XpoVqAzU6EM12EGVnrh0ToGyhg0nY jbYg== 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=xLI5+d376LG9sJqHYL1BtszRuAJUAxDo92wgrH/heD1jj9BbQvxMwm8Wdlv+Abx6dX gxZQrLNn5ayizuMth3CSTPMnG/gnwStAtqlxn25t/ipWQVCSbB2qSUQc46Z4IX/mPDFQ nQrXvkKd90tJEIh666eFIbPlJhniaFOiwtfsDkpVKYz9eeoPhwPNNLpnQynBQQuWyHvp Urx92wzokd7YXPd+wbwVBfY4Emx8cwIaTwGnL60pLUqfHDj7nPUrYrj4jy+Ifo1Au0Gx e8c+QX63qPYG1Q0nUzw99zibzmM5lpRniHodfSts3alTbTu7/ogyLUsfC0Uegs0P0p1I kn7w== 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 r11-20020a632b0b000000b00476dc18e732si7993708pgr.726.2022.11.28.04.04.30; Mon, 28 Nov 2022 04:04:46 -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 S231808AbiK1MDe (ORCPT + 99 others); Mon, 28 Nov 2022 07:03:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36412 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231489AbiK1MAq (ORCPT ); Mon, 28 Nov 2022 07:00:46 -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 C796818B3A for ; Mon, 28 Nov 2022 04:00:45 -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 1ozcoS-0005JF-0W; Mon, 28 Nov 2022 13:00:40 +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 1ozcoQ-000oBI-C2; Mon, 28 Nov 2022 13:00:39 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoN-00H6MW-7K; Mon, 28 Nov 2022 13:00:35 +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 13:00:12 +0100 Message-Id: <20221128120034.4075562-5-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741377439703648?= X-GMAIL-MSGID: =?utf-8?q?1750741377439703648?= 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 12:00:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26720 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5613431wrr; Mon, 28 Nov 2022 04:08:40 -0800 (PST) X-Google-Smtp-Source: AA0mqf60vNtNgO/GVB49gI21ZicUvIXheUpHJmeTLNwC/ahqomgMLyuwZwsA+q8dg4XnwQj5O691 X-Received: by 2002:a62:2702:0:b0:572:8766:598b with SMTP id n2-20020a622702000000b005728766598bmr31400404pfn.21.1669637319947; Mon, 28 Nov 2022 04:08:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637319; cv=none; d=google.com; s=arc-20160816; b=xlOPDrpqxH8unZoFg8/MaWxK0Sp3VykQP5IfX1AiUoTb0To1ibkfqIxhd8mY3iUfCE 8ppEvWE8fbvy3c0rGzVz6eFxppc333gFF6autbwT0NQFZuJ93tXllZ9s+q0p3vzkBejp fSTNbUEPOaSqs2mjqHaVeAx5IhWrz6NnkN/3ti4GKW9qNe4Bkntx54QHpwOeCgRwJAQD C4qyiJDF2UZtcazBV1n1jD9e/nj4JWZLyNQ34Eb4+bgvdpvDJxCWV9ez3PBaWMU4nAdj eZdfO/4jm3aAAWGPaTM8pxEMcbETUPjgYCaZqeifKYtBVaQ7wzTmZt3pVKwPfQKr0AYW m0IQ== 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=j+7yh32Sqf8tLO9c58zPHG5Kr+GzlKtDnMNf36CyjZrZ77+2q7itGGcdsENLFW7kj4 uOFQBOPd8j8QiMc9lgbpoN2nAPKHhFEjtcNpBaBOrmsJ3CR4BII5IC6mtlnayuEwXJVf UXrWjg3XTJg1hvEZefpnlGUupGmDU6PMInA5ssmuJrNe6ynUvaWFt3Vh2r8R7TI0RxHy vdpEZp5K47GR7y/gT5pKZUNSxfzAFUE4nCRlVqnOWELfgD0Pvyje4y1mMSksPvqvi0qj BsrFrGnPgaPdylxDJIZl9GxNCvLfbgRuH05X/47RQsz5bIatbaqrSu/AXGKl4N/JrUkm ZBMA== 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 i36-20020a635864000000b004541962a9basi11971641pgm.701.2022.11.28.04.08.27; Mon, 28 Nov 2022 04:08:39 -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 S231877AbiK1ME1 (ORCPT + 99 others); Mon, 28 Nov 2022 07:04:27 -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 S231529AbiK1MAt (ORCPT ); Mon, 28 Nov 2022 07:00:49 -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 927A418B21 for ; Mon, 28 Nov 2022 04:00:48 -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 1ozcoU-0005O2-Di; Mon, 28 Nov 2022 13:00:42 +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 1ozcoS-000oC9-Qn; Mon, 28 Nov 2022 13:00:41 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoN-00H6Mz-AI; Mon, 28 Nov 2022 13:00:35 +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 13:00:13 +0100 Message-Id: <20221128120034.4075562-6-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741622377227897?= X-GMAIL-MSGID: =?utf-8?q?1750741622377227897?= 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 12:00:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26694 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610107wrr; Mon, 28 Nov 2022 04:04:29 -0800 (PST) X-Google-Smtp-Source: AA0mqf5PErOC6rLTfGS4m31McX+X2zEd4f+2UjIOfKG5cgpKv8IrtgZEiglLj3ww/o+5SejJ/K72 X-Received: by 2002:a17:902:d650:b0:189:f86:ecb with SMTP id y16-20020a170902d65000b001890f860ecbmr42106488plh.45.1669637069142; Mon, 28 Nov 2022 04:04:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637069; cv=none; d=google.com; s=arc-20160816; b=Ax2E7h9AeLnNesKzrUu51c+LZH7gOiY0S7Hswns7XA8EQox+s+PJWcJeaNNcPzgc4G TZGdWXPGiAcxT2bN7sAuBlVI7u4RX/aFPjxraptKlOmNWqaPCF5aBjJgnHt72UEvt0DJ utokYigYW0C9kbaAft22gmQQVJwZGcT5e8/pL/Q8D08DLAT07qsOCTATGtCPXRiQ9o02 Hj9oOIjTOAtlg2iMirlDVSq6sKR32540a2y70nZQxI2bRuEHXWpx/hbUHUpFFVnj60Xq B6495TZOHI7nFTGxLL/LhO+qrON6oWxB2YKw3fvcaO1o7GNBMK8JA2Ufn/M7tTdHVqJH xL6Q== 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=pNI0zW65Ri3XOdI8BrvnjMzYHfQPr8c+RuZHZgExVBdoQkyT4L7sZLvLhUcqvCEGBC +zyzyIcS46g9T9SVfh/w9cK+KeFQMR4QhVUI08dwi1ZguQvOv8ObgJKcr25xUI4x/xSo 216s0cZHB5vuPlk9RbXhV43uVffRV0BpRkvEah3AA6IF+10uoLAi0GdrCuVnxyNvG8rl o2K8EX6VxnF4zsSVx6SEK6t4/+ZwTHQB4D8G2fccR57yxXxDktp8nErERAOtsB7PpdjT Pi0t0ocAXnxjUeDEfWYmRHGvU3WhmHDGDi3yqgKrPQefT6OWlOwVJxQ9FNadxbBx/jzH 3+Wg== 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 my13-20020a17090b4c8d00b0021305ca5933si16327484pjb.42.2022.11.28.04.04.11; Mon, 28 Nov 2022 04:04:29 -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 S231493AbiK1MDF (ORCPT + 99 others); Mon, 28 Nov 2022 07:03:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36404 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231486AbiK1MAq (ORCPT ); Mon, 28 Nov 2022 07:00:46 -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 5551A18B1D for ; Mon, 28 Nov 2022 04:00:45 -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 1ozcoQ-0005HU-Q9; Mon, 28 Nov 2022 13:00:38 +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 1ozcoP-000oAu-51; Mon, 28 Nov 2022 13:00:37 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoN-00H6NG-Db; Mon, 28 Nov 2022 13:00:35 +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 13:00:14 +0100 Message-Id: <20221128120034.4075562-7-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741359360922066?= X-GMAIL-MSGID: =?utf-8?q?1750741359360922066?= 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 12:00:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26699 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610294wrr; Mon, 28 Nov 2022 04:04:42 -0800 (PST) X-Google-Smtp-Source: AA0mqf6h80k5suTrx1uj7VOTITxXoV1mkeIfZZRAyBGmlSkNea01ECT3tUKzqdV/JtiRIssoXtmb X-Received: by 2002:a05:6a00:2483:b0:56c:12c0:aaf1 with SMTP id c3-20020a056a00248300b0056c12c0aaf1mr32920985pfv.50.1669637082256; Mon, 28 Nov 2022 04:04:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637082; cv=none; d=google.com; s=arc-20160816; b=o9symDT+beU4GSsgSk1vHeoc8O4tU5eBa/qOPgJc64ZJy5ESYQcH9ToApi5CyMRm+D Wj8kOI4ti7bwIzkyRkWXWhDPQOeFMqVh/JOGiGBeOFyqvERzpScb5JUUtNQb+12qRZwH wJ2uvmIVWnArHlGTazljwfVrzEL528kDTuX2/naQPUJ4rkZ3TdR8NRxIQA9ZJ/jsuW48 nFOIfVpSg6VOzI/q6zJrAW6ELHFUHuafkDhiBfHzmF35MyFK31p2lc2F3mSffRIn5xKA kPi6tOtudTFw2rLZG4CtE6r7sX9bI/l/1797iCQ6QBlpeu1nj3EXj1g3gn0+azNbFy3W o1IQ== 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=Y1gcPXWIuBLexyY8VSkT/dH4kD1gpoPbWX1gNAyNzNd3KSZRxKoW5UeZ/ZNyy0x5eF jphFBWCDUuC3FMZqblusNnmTcIsBP5sJ+v/l51xxghm2cjPn3h8+KKkbmSX0jGE8RJW1 fEmmXgN7b6a/J+2eHadQUrBy8Gk89cfaGl077Wc/Rzhq0FioitgdvPltz3M9F0izLyV7 kPtgudGCYmuaEG3kNWistHiWA55b/6cIq/dgftm2jDzf6bPJw8mrQ2kC/fTyx0qPNlrQ YPSoieJFTHpIZz+yzZlhxUTeWLJAINjPOL2Q2MP05rS8FocQkEyVox0248+D9RYb2g0v u4Uw== 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.04.26; Mon, 28 Nov 2022 04:04:42 -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 S231724AbiK1MDb (ORCPT + 99 others); Mon, 28 Nov 2022 07:03:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36604 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231494AbiK1MAr (ORCPT ); Mon, 28 Nov 2022 07:00:47 -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 715661A076 for ; Mon, 28 Nov 2022 04:00:46 -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 1ozcoS-0005Jb-19; Mon, 28 Nov 2022 13:00:40 +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 1ozcoQ-000oBM-Gl; Mon, 28 Nov 2022 13:00:39 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoN-00H6Na-Gn; Mon, 28 Nov 2022 13:00:35 +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 13:00:15 +0100 Message-Id: <20221128120034.4075562-8-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741373024078173?= X-GMAIL-MSGID: =?utf-8?q?1750741373024078173?= 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 12:00:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26693 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610097wrr; Mon, 28 Nov 2022 04:04:28 -0800 (PST) X-Google-Smtp-Source: AA0mqf4NJuE8tCJkNhpA95RYi9VfHa3it0SgMoTuHYACdU3VLY+y5F/IgqQzSztOpXktCF0RYWbd X-Received: by 2002:a17:903:555:b0:189:959a:84d8 with SMTP id jo21-20020a170903055500b00189959a84d8mr398031plb.38.1669637067973; Mon, 28 Nov 2022 04:04:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637067; cv=none; d=google.com; s=arc-20160816; b=gUmLPejDvFqMVe/bD6m8nCOihf5Ch6pbNmVV6EKD14oJSBzv8BkhqXf7rSEjZ+pYUB /8drsWyVoQfSAcfD/QSMvoSAuWcc8MgK2lfQNhJaATBrY/NWT08u0qmUVCpq7QCZIOqV jEHucve+PkM1UJrl1EYxerJNabTnsvfG14SErHXQArTgQipA0qnMSlc6MLdG+GZ5nyJQ bfmgL+hyAnQCEeOIjRBuKfSuEmvKir3YytchenQAnHSjr1UEiUjrgztIlrjWGwNsSdNl kWt+4dyMlPT0j397fqd/IYm8qqGECifGZYyNgUv0v0pthzdMudAdpLJoXIXIPX/7Ov+r MbsA== 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=ZY60Ey/j75mbQbp3GwUGnC/YPArM5IS1MB6mDxe7FE6GrfwUDxjq22T0qv7mvabksC OZQKa31kpzqiB1wqae1+7S97xKtTa2MryYTBdFdDfb2Rgcz93/vFeC/ig3uDy5BWW5O/ OQU1iTPISyJxijXevrCso2/VQeA9EDsxU5JKbAbbJiQhghohl7lKcJCISob3m10K9u2d +0SwFn5noVz8NVRIgS4T9TUFxRNvIa2mBV/IuEUGZe44oCUMc1+Q4itHF1O+diZ0CEps TnIbTIcw2aMpBgVQ+3afbr1Tz6sMCgLuVJA9xSOa5keT7edn6Wab4oAUEhFl1ClgavnI 6oXg== 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 h4-20020a636c04000000b00461bf5f86fdsi12382802pgc.403.2022.11.28.04.04.08; Mon, 28 Nov 2022 04:04: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 S231769AbiK1MC5 (ORCPT + 99 others); Mon, 28 Nov 2022 07:02:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36312 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231481AbiK1MAo (ORCPT ); Mon, 28 Nov 2022 07:00:44 -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 EE8BE18B24 for ; Mon, 28 Nov 2022 04:00:43 -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 1ozcoP-0005Gt-Sk; Mon, 28 Nov 2022 13:00:37 +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 1ozcoO-000oAm-7o; Mon, 28 Nov 2022 13:00:37 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoN-00H6Np-Ji; Mon, 28 Nov 2022 13:00:35 +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 13:00:16 +0100 Message-Id: <20221128120034.4075562-9-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741358516115652?= X-GMAIL-MSGID: =?utf-8?q?1750741358516115652?= 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 12:00:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26707 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610615wrr; Mon, 28 Nov 2022 04:05:06 -0800 (PST) X-Google-Smtp-Source: AA0mqf77HQOEEwmp3EepiXwXZoMf6QMtg6W4xohWoIBhIIl66nzx4zh4bx+emh4Kqf/+6WBEBTjT X-Received: by 2002:a17:906:2e83:b0:78d:b3f0:b5c0 with SMTP id o3-20020a1709062e8300b0078db3f0b5c0mr44546363eji.141.1669637106674; Mon, 28 Nov 2022 04:05:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637106; cv=none; d=google.com; s=arc-20160816; b=VaOId77C6Hn0CpabBSi4MA71O7DEXWRU7RfWO8x6xx5ndf2lWJjwNrb3MAYztlFe/V RCmaaKYxkElk9gUmff/YICTD7LkLYN38ix5086l1X8/rCD7lG1wFjGwZlZz24z6NteMi QqZX2zr/Ttz12mtzNyIKBKkmMsQGjsZfdkWhi1IXW9reQPrQEFXokK+HgFSeWTVzxgsM Qzpuay5DVlGT+UeSVAQ/YK1yyOgSqA6alTCMi7b0Hy2hINFsL9qfb6TGWsnpixXG4lcs WFoeQnG0qFCCFfq5nV/QegmevPoH6o6jZg23VYcqa+/ao3TRMiDyKMq/4/8wn3F14R1b G7qg== 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=AfwOoRSvZA9T7eOrkk7nWMzgti1VQrQQgujz1vNS8SpWnjtH3GqkzsFx6To8Eq2o5O 2iM3owj3LeqYZ2jfyHPLZqqtgGnHyLQRFdGIT/JLjlscgkUhDSl2VPWeNZR2fQB9J1b9 FFrKqaBRu9HDazBs7RsPq3FYFlgMfn+jZVg+7QoIqONBTmhyPGvIGLt57IA0G7pzS+2M tW3TWwRwsDiwLqO1Ox1bQEjoZh6teGZ8NJzJXccbJEeMkARDDi/zUyChSzGoswYhCxyl V+9ifc1GXnZp0vKX/h81tyIOf1KxduZcOshLw54+r9klFOCbyf62zKahs5gsXLcvEpY8 Sngg== 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 eq10-20020a056402298a00b00469e712cba8si9505144edb.558.2022.11.28.04.04.36; Mon, 28 Nov 2022 04:05:06 -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 S231834AbiK1MD5 (ORCPT + 99 others); Mon, 28 Nov 2022 07:03:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36292 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231521AbiK1MAs (ORCPT ); Mon, 28 Nov 2022 07:00:48 -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 2F56C1A228 for ; Mon, 28 Nov 2022 04:00:48 -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 1ozcoT-0005Ll-E2; Mon, 28 Nov 2022 13:00:41 +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 1ozcoR-000oBa-QJ; Mon, 28 Nov 2022 13:00:40 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoN-00H6O2-MC; Mon, 28 Nov 2022 13:00:35 +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 13:00:17 +0100 Message-Id: <20221128120034.4075562-10-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741398370569812?= X-GMAIL-MSGID: =?utf-8?q?1750741398370569812?= 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 12:00:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26719 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5613426wrr; Mon, 28 Nov 2022 04:08:39 -0800 (PST) X-Google-Smtp-Source: AA0mqf47XFn/Q3g+AOwtQAE5NYFurYiVbAhD7EVRz2GmEkNSiAmaw7uP8sdfFCrnnY4uyy3scC6R X-Received: by 2002:a17:90a:ee87:b0:218:bb14:ba3a with SMTP id i7-20020a17090aee8700b00218bb14ba3amr36605569pjz.119.1669637319211; Mon, 28 Nov 2022 04:08:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637319; cv=none; d=google.com; s=arc-20160816; b=urhH5BuNwVjU0pLHz423Bqytee4kb7NsV3WVAQQ868BQC0wiLwLVSEF9mACH9vTX98 9b9ezDomIURhXUObv/iuplXftwP8QJaQqsROtJhgu48zWm0lW4hAPv/FX3XQQeF2i4oz U6ej92Q75AUlnwUXGydFAS54eyxrTb1OkluO+I6Yj+DmlLHDVhz3JQdfoHZHDQF722A4 57jKjC+zaymic/Jhp9R7gmTRsNPRY9SOMfmjhW5RbfF1EBGTpCVqk5g9bxzHmkp4trx3 pSTp5bzktVPB+B1b4EhrndNfpVMS/GrNI8R+sp/xnHreTj7uTZxUeO8zvDNlwCntSnWG 8KQQ== 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=AI4vgLMokSFtXuhS/fU19VOQmg+maEjayXr2vgpwBcU0PDUTdEcgSJfK0CuJI3fwvI I7ubuxJjIqCKyTS7Xx3AsSDar7yuraJkvJ2GCnUF+6wCCdmbMhPj9sAuSOiPyUJ5A8TD uK3ps7Bfq+Cc9kvplq93bGJeBdPPEMUnlY0xdMXIqrYKfR9DiaCU/mbwp7h7woeN3nzX fa/h97JBwfk/T13RtUufDoAS1DYEYnfrv85sbFpLgrEwOorJXOPVtRnJdCsphf9KECq3 3986UkrgfjjngWCdOuJ0drlGA8ySEwp9ENEIrA3N4YGO3LJ7wELDt2sncyu6W6ysTKrK ZDhA== 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 d10-20020a170903230a00b00186b697ec66si12892964plh.399.2022.11.28.04.08.25; Mon, 28 Nov 2022 04:08:39 -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 S231488AbiK1MEX (ORCPT + 99 others); Mon, 28 Nov 2022 07:04:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36748 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231528AbiK1MAt (ORCPT ); Mon, 28 Nov 2022 07:00:49 -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 873A5186F8 for ; Mon, 28 Nov 2022 04:00:48 -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 1ozcoU-0005Nn-DB; Mon, 28 Nov 2022 13:00:42 +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 1ozcoS-000oC6-OT; Mon, 28 Nov 2022 13:00:41 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoN-00H6OH-P1; Mon, 28 Nov 2022 13:00:35 +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 13:00:18 +0100 Message-Id: <20221128120034.4075562-11-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741621602978116?= X-GMAIL-MSGID: =?utf-8?q?1750741621602978116?= 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 12:00:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26705 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610475wrr; Mon, 28 Nov 2022 04:04:56 -0800 (PST) X-Google-Smtp-Source: AA0mqf7j+yYsJ706PDqiIiukIVPtEWvpqBnrJpQF6sgRzo+zCUym+u2KcnK7+hby8hdBxBa8OsR7 X-Received: by 2002:a62:ed03:0:b0:558:99cc:8b40 with SMTP id u3-20020a62ed03000000b0055899cc8b40mr31269727pfh.25.1669637095897; Mon, 28 Nov 2022 04:04:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637095; cv=none; d=google.com; s=arc-20160816; b=Go+8Vtrh1J7NwwPeKS1wNxnoG+YXeRmHoZ/z6iDYvoI+eeAriP/8kiwz2zZ53v5/rs pLZE2scqW9XtE0YIwBjJyJTnJAkaVmBL1FxOr2QkAQOAjRrMQA7dkVHhMh+MsfTDBgyb BrB/mhKR9DJcRvijCtz37FYCcuCmoB6ejle8Sk71cFC37qTJwpwOj4+ZkHxySxLVZ3fJ dwM7FIMIGOwbMRtgazl91VaP98hJ2DtfsVgcgyKmgB9/aPlWlOwnRxlWDMRLnxcf4e5Q Nq+N3Nr3To0LjhqQDqmZggUvkevXriahf2dXPFg0WzNkAuzVioIR1nvydaSWdttg+vYX 7tBA== 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=djrk2sstlWBiZZ8knKiKCLMD13lltRbAdX+3Xano4+zfO9nmEzBc3ySgDq3BYOk0n2 VS5OoZfVbQHP6eLijzNWMdWVHygKow/V7i+5q52HHmX0rSJvLyV2ake8xPYQgysBdulk RHh4BdtKs0rEvTD+LbZMB5cxlXkrjfAUKuwgKAf04aFo0NsoqtY3bVWiffADJCXbw9we g7gps8D0DD/sCg4UrOkmj+C7rNfUcxu9UNByIhu9ylM45h0qvpBxXtUd34Y8ktBMYlGd OfII0kO+qzyiRwv1H1bZ84J8yHS8vQOAnXebZPy+Rd+OcIVRGFGwVypE8fizB/SDwYUx xKhA== 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 a192-20020a6390c9000000b00476f4361432si12447580pge.13.2022.11.28.04.04.37; Mon, 28 Nov 2022 04:04: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 S231839AbiK1MEA (ORCPT + 99 others); Mon, 28 Nov 2022 07:04:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36722 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231519AbiK1MAs (ORCPT ); Mon, 28 Nov 2022 07:00:48 -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 2A4F61A223 for ; Mon, 28 Nov 2022 04:00:48 -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 1ozcoT-0005MN-Kn; Mon, 28 Nov 2022 13:00:41 +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 1ozcoS-000oBk-4O; Mon, 28 Nov 2022 13:00:40 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoN-00H6Oe-SM; Mon, 28 Nov 2022 13:00:35 +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 13:00:19 +0100 Message-Id: <20221128120034.4075562-12-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741387095219457?= X-GMAIL-MSGID: =?utf-8?q?1750741387095219457?= 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 12:00:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26710 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610792wrr; Mon, 28 Nov 2022 04:05:18 -0800 (PST) X-Google-Smtp-Source: AA0mqf7TMCriBFtU5tk5JSJUAZpX5mmp6vbCgfuxKVNmZ7WB8RGoHnGT+QzORV2PDxvy7jJs/XQf X-Received: by 2002:a17:902:b20f:b0:188:d4ea:251f with SMTP id t15-20020a170902b20f00b00188d4ea251fmr44047981plr.36.1669637117991; Mon, 28 Nov 2022 04:05:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637117; cv=none; d=google.com; s=arc-20160816; b=Dm5Mqtgkc/kV3dfWGoGRG+nIcqdqMA86K59p+e4O0BNGE9NMnJ95Nt6e1UVfeLPFVT LyrNweUh/5HpwWI43NoeDHhbRse7HHi+50apfEiGvhXz/o6CUWTO2iz2QmlEEN92JNx6 Fz6uA4o2/CCfR7xHp0ZhhNzvAmCcmt1nrpZEPKKbP826O40rkZDMHIdlotwHLUtmdKYN nt+aKjL+JfK39B9RKorOsCAOnM1adZ1xfFQg5Br03hJkcjaKcN3N1BRj2K1p7geAnFXc V/uHvzAlQdS0p/IpZIFBRC8+mGepSrMKIp+Q4NuBanxU5HCpzoM4zmI9AaFrWdt5sgBq HPQQ== 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=z6QbwRIToFI2+sd64C5n+LptqhP8CIWE45iDdMVnqvY/mBwOUneE3ZNTKG/YT3U3vy psnRt03ROtVWtal34K5cIQa44JXX7jG5raCIZZMescHJ5FiWwhcTsgeWj7krD6P4k0ZW Ho9HGdpPLTQAS0vT9TQs1JsW4vWN6+orPSmWETF3a1Hv04SggoB17xNYPD2cOeJ3N9AH lR0oQVjdeSka50pSjmz/7SNDPkJe4S3MYCsC1Nw/3QLeyRPGyqG+a8hWJOV+58AFmPYa AN6wGP3Xb1U1Qm/wJ8MDLddNI6YtcSVNnOQvvTId3R6vOjYUhbzpuWOTt/Krw99wwhDZ RtJw== 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.05.04; Mon, 28 Nov 2022 04:05:17 -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 S231767AbiK1MEK (ORCPT + 99 others); Mon, 28 Nov 2022 07:04:10 -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 S231520AbiK1MAs (ORCPT ); Mon, 28 Nov 2022 07:00:48 -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 464521A238 for ; Mon, 28 Nov 2022 04:00:48 -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 1ozcoT-0005MO-Kl; Mon, 28 Nov 2022 13:00:41 +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 1ozcoS-000oBm-6A; Mon, 28 Nov 2022 13:00:40 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoN-00H6Ot-Ui; Mon, 28 Nov 2022 13:00:35 +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 13:00:20 +0100 Message-Id: <20221128120034.4075562-13-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741410943987516?= X-GMAIL-MSGID: =?utf-8?q?1750741410943987516?= 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 12:00:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26696 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610203wrr; Mon, 28 Nov 2022 04:04:36 -0800 (PST) X-Google-Smtp-Source: AA0mqf5bHZDtngKqTSy8u5Rc+8YSVoOqVreoKRVi8cI/igS9C0yi+72t3yhY73FvbX1iWx3q6P2e X-Received: by 2002:a17:90b:4109:b0:219:f99:2809 with SMTP id io9-20020a17090b410900b002190f992809mr15573264pjb.36.1669637075735; Mon, 28 Nov 2022 04:04:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637075; cv=none; d=google.com; s=arc-20160816; b=0GYLOdBen90Alo10IqkA4yQRsNVxu6+wtcGYiGHm4o46PvHc/uGrUKGHQwtC7XC8Tl sCJXOlbq/5uueqrK5MOvWNdnI4ATGc72sejT/D/kMyh9HyESKXmQKQCOf7ENAGLMIxUo V1PhLLFXvM7pY5Ze75VlNoJpdj0oURKqjXogkaxKG8WN3BAB0nmqRucJkqco+iQfDMZk SAcTYX9AbuRmZ2hU+llvAKjtMGkNiEKKj6Jew41lxQ+gQWpxR8JgrUxnejXpN9RiRcvZ 36pq0gwGW33iwwnI4uoIoBlfoMvsevh7+mLAV5/7CwYyII7QP0rV6GWQHM4CoALK1a6A KXUg== 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=KxLUjc+kIuEcBvE0a0jazeCJiUZpkVM6MhLaSU8YAa/Rd+2nFM5lw0WzWeMbu5mmdW L5Vff0WiLihyGTl59qXJZ2YraO5fc8SJ15Tj2qYT0/AW1rzMgPsLV8skaqTEMRcqZvJG 9ydqDIrUFJEPlPo1JCZdy8/6QDo/Cyl0VZzqcgGQ3jUfAG+GXFW/W4W/fCtiJgsDfHTL zKRoby3BSegzsa5t/8L8Hu9bKfS7ngjSRP3RexrdvSLtsdn5xjHWO0ifCqq83Q9Jb7/n pYDuZtlG1eAikRuKZRDpQrhTGegJUcLbYVkmkbP+HTZBp0ODE2/UYF+kKyuxkwXBM8gk /I0A== 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 lx11-20020a17090b4b0b00b001fd7cab081bsi16362095pjb.125.2022.11.28.04.04.18; Mon, 28 Nov 2022 04:04:35 -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 S231641AbiK1MDM (ORCPT + 99 others); Mon, 28 Nov 2022 07:03:12 -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 S231485AbiK1MAq (ORCPT ); Mon, 28 Nov 2022 07:00:46 -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 4FF3118B07 for ; Mon, 28 Nov 2022 04:00:45 -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 1ozcoR-0005He-38; Mon, 28 Nov 2022 13:00:39 +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 1ozcoP-000oB0-F0; Mon, 28 Nov 2022 13:00:38 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoO-00H6P9-08; Mon, 28 Nov 2022 13:00:36 +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 13:00:21 +0100 Message-Id: <20221128120034.4075562-14-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741366438803566?= X-GMAIL-MSGID: =?utf-8?q?1750741366438803566?= 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 12:00:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26697 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610261wrr; Mon, 28 Nov 2022 04:04:40 -0800 (PST) X-Google-Smtp-Source: AA0mqf7YwiR/tp1I0chq8RDQs/0D7/4NljL/UNQW1WCnivsbKV1/wVJvqPhwkGCMxq5PYweedIfu X-Received: by 2002:a17:90a:1a12:b0:20a:6ffc:f0c6 with SMTP id 18-20020a17090a1a1200b0020a6ffcf0c6mr60526607pjk.49.1669637079699; Mon, 28 Nov 2022 04:04:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637079; cv=none; d=google.com; s=arc-20160816; b=TOp2owD2unRhPllphk1DRB5ncIsn5Qg29R1vmxFasTpl0JtlopQf552U8FtJzpaQhX pO15avBMYt0wLhIv/85MbJvo6jSfDvLAe2nUvknupZEmr5l0b0NxV2pR7A0oaAgRJ00A g/aM4Zw6ewQBHAuU0KkV5q4lxiKtq2zf+3ynCiQhSkB+S8wBjMoLCSHgePPCrkmiyT0m 44hFXYau3B819E+J5wIKmgf9zT3c3NKEuyXVD5frBW6uIUWik4mqOewwH6DY2YJFTSZk EZ+wQrhNG/fvkOPMwOyWpG+O0RxaENQ25eKamcHOS23zPwdw5o/POrmoLZZuhlhcbwob pKkw== 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=B94b1X83CBXuVyIjQEKLIs0xxUOqjAAkngw0R7ruTmJkxAfsgB+xhuyVbA746O8jG6 Ek6gzSIKm298n5EuWRvB09QCldbT65FIZ4VTsaFkMqj95ma38lKnY3JtM3xodoIKnDsB TxdL71E7zaZXVdfOI5vN+7zyW1noSHwTZJkZptJDsDhpRJ5Nu2pX8PptFdZhVwzs+er6 ZGbMiaetmpkdZv9UiciES6cMXpQt9xpqcaINLJYal+Fbgguh5GVQCgAM0HlqA7l9oOua CSx26AyVV/TB1QyaxUi15ty4TJxKeK4Mur3wog3tq8bQrX/wUg4uG1591DBT32M3f7Qc 7xpw== 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 z2-20020a63ac42000000b00463e9f26c48si12584902pgn.177.2022.11.28.04.04.21; Mon, 28 Nov 2022 04:04:39 -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 S231795AbiK1MDR (ORCPT + 99 others); Mon, 28 Nov 2022 07:03:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36186 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231484AbiK1MAp (ORCPT ); Mon, 28 Nov 2022 07:00:45 -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 112DB186D3 for ; Mon, 28 Nov 2022 04:00:45 -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 1ozcoQ-0005HV-TH; Mon, 28 Nov 2022 13:00:38 +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 1ozcoP-000oAv-88; Mon, 28 Nov 2022 13:00:38 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoO-00H6PN-2w; Mon, 28 Nov 2022 13:00:36 +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 13:00:22 +0100 Message-Id: <20221128120034.4075562-15-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741370421310140?= X-GMAIL-MSGID: =?utf-8?q?1750741370421310140?= 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 12:00:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26722 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5614999wrr; Mon, 28 Nov 2022 04:11:22 -0800 (PST) X-Google-Smtp-Source: AA0mqf6b/lenhQHTi+t9ARb24G9nc5DLdEBQO+Tf+gWjOlNGoJADXAvHCR+PIa+ftrbXqz4xs97Z X-Received: by 2002:a17:90b:2688:b0:218:b9e1:ebef with SMTP id pl8-20020a17090b268800b00218b9e1ebefmr37585613pjb.65.1669637482236; Mon, 28 Nov 2022 04:11:22 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637482; cv=none; d=google.com; s=arc-20160816; b=MwtAlJu86AFPkUXVf31fWxzPq6pG8u5vZs5PjjBJQbGvMJm+3jXX7a+hOqmRN4O7Jn 8N005PtZpvILo9so2/DSUQ1hWy+Xkd7/vTToa+hE+hGp6keRsy97X+R0yyI5NBlHSo2A RYAwInx0jOl/dyfjFqbO5Xuqfn7x05VGVTmsOWTQLTl4VCooYjkrFjQBwBaX85cCqXT3 AaxisvqZXz9BLDHUHWtEkVMYE1IV/1sliViFawAzcIGDzWs1jQ2yv5gpyR5GSLdl+UXj X4KQm8uMgIfYEiGkp4plVC9wSKBZHAtg3ScNHtzj9yERnJ6QNuhWVaD3yTDM7RXXCRA6 NAOA== 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=dzv/HSS81wkqn5pgBb5tJ7RmDEmaxKE0IIJE3PFSld6wMSWsd+1iKMqYU0ZA8eVP9M ULXmCMPPU6MQZ3Z0iDPqWVGsn0RgzAsuMQ8C5GOO6ekVfgfsNyh+SutojeDWDK4zgRYd rOklYL/aZygGpE6Tgo6tiH9JxJoOx8HUeDnqYXaz41zRaifoyKuVaZNscJqRy1FNwfi5 Zeyysj1ykGleJbW/weI6BpB1qMAKmfisQAZ3IY13jQI+pM0WUa98dNOF9B4Hb0BJDjXJ pep3OzT/o+DUZw2DsZUlVTxQ0VohJoNpKi1cWpMAokZJcchdJ5EuxJWx/3GfEDUFffjb 3ObQ== 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 e11-20020a170902744b00b0018951533e11si10976870plt.278.2022.11.28.04.11.08; Mon, 28 Nov 2022 04:11:22 -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 S231653AbiK1MEd (ORCPT + 99 others); Mon, 28 Nov 2022 07:04:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36310 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231535AbiK1MAu (ORCPT ); Mon, 28 Nov 2022 07:00:50 -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 5562918E0F for ; Mon, 28 Nov 2022 04:00:49 -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 1ozcoU-0005NW-Aj; Mon, 28 Nov 2022 13:00:42 +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 1ozcoS-000oBz-Kz; Mon, 28 Nov 2022 13:00:41 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoO-00H6Pl-5t; Mon, 28 Nov 2022 13:00:36 +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 13:00:23 +0100 Message-Id: <20221128120034.4075562-16-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741792351632913?= X-GMAIL-MSGID: =?utf-8?q?1750741792351632913?= 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 12:00:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26695 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610177wrr; Mon, 28 Nov 2022 04:04:34 -0800 (PST) X-Google-Smtp-Source: AA0mqf5h6sUZl7JFuipkRIC+Q4zTWtSeh6nskF8yoeMuS5zdockTQxEe3zkdtjGImEMWm8eqR34q X-Received: by 2002:a17:903:1cc:b0:185:5453:5e01 with SMTP id e12-20020a17090301cc00b0018554535e01mr30672240plh.113.1669637074524; Mon, 28 Nov 2022 04:04:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637074; cv=none; d=google.com; s=arc-20160816; b=P43bgulUsI4USwxfvu+rC0I05aQn2IDSnsKZY//7uv7eVwCSR7X228DuQGBeFISk0O tYkl/Nao8Y/6seV+NbdgfdI3L+k7zWVvfFbUCNC0IxBVxzdW3QUaF0ulNotsDylDbDnz Wwr0YCXa1/zdTZ4wdLvjzdzwXGkKJApDFX/9BxiCy+umkAMLR3Asj+Vtd2+3jn366yCj Qeq5MFdvhRvAQIgf04aHs6NmedQ5IQoqKSutYz89TBdoLuK6ESiIUlX8djjpUYgBPjD3 dnuen8ntq7BRtIgxyIH/tgW+/Gkq4ocw9H86NyMq5uVqGKVXwcW4ouAIMGPWsvTX1vgc YBsA== 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=RnGqXo+192GkrEZUMoLJSMGKYtsdkBN/wLY0gJjELjzoJrLVC4vRntzqpdWNaKZd5D AuQnwA0gMUwKimsOtbfDEoxNQRvgxOCGG8BbCnokUqAVQKUO6LBj5QLG3zGRiciZKC/Y 7GQLH3Mdh8dqMA7cv0OSCL4WMOsswwkC1/yTzDIAghBN14JRdXQd6ODodEEZb6sGH/zD DOg4bMB4g9T6EvBXOg8k0zspEl1OCoaBI4In1Ao6vjMtJtt2iZTFgTxmKN+Yp5CQK3lS rkAApZahUaHWUZqVAG2IEpykyksPUmNA5ckTZfYQX83iySqw3uHE4ZzJlHD9PXlLOkkY Sfhg== 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-20020a6389c8000000b0045fb345cfedsi11675238pgd.640.2022.11.28.04.04.16; Mon, 28 Nov 2022 04:04: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 S231779AbiK1MDI (ORCPT + 99 others); Mon, 28 Nov 2022 07:03:08 -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 S231488AbiK1MAq (ORCPT ); Mon, 28 Nov 2022 07:00:46 -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 5C766193CE for ; Mon, 28 Nov 2022 04:00:45 -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 1ozcoQ-0005HX-VO; Mon, 28 Nov 2022 13:00:39 +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 1ozcoP-000oAy-AG; Mon, 28 Nov 2022 13:00:38 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoO-00H6Q3-86; Mon, 28 Nov 2022 13:00:36 +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 13:00:24 +0100 Message-Id: <20221128120034.4075562-17-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741365330566169?= X-GMAIL-MSGID: =?utf-8?q?1750741365330566169?= 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 12:00:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26721 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5614824wrr; Mon, 28 Nov 2022 04:11:02 -0800 (PST) X-Google-Smtp-Source: AA0mqf4WAZGWHMNT1lKeuQbRamMRFjvArtHQCV8yicssKxf5OcXT+xAhiuFYLZr7vpM+hwKYdNcT X-Received: by 2002:a05:6402:3892:b0:454:cbef:c161 with SMTP id fd18-20020a056402389200b00454cbefc161mr29484203edb.365.1669637461890; Mon, 28 Nov 2022 04:11:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637461; cv=none; d=google.com; s=arc-20160816; b=RkDxCoXeFIy1H8/A68+bi+38uKhdr/+jRXMb373H4ng+o4ZdWFJzxjMsmB2VmzYP5D YVpsY0DNupDt+/VPvEm+mngm9AjRk6C+dhLWFKd2buKEdBEwNtdubQb15hz37PVdvpk3 AJWTHtDBO65jEOXRiDrE1vcLozDsqV8w5NKd9d5iYoDxxyZVOMJCnaz919yd/+4tF7Ba goHVocDd3/kuV9TipqvCMx2GiLUuswNu+cHBHtJxITXFmF9ZIm9NzA6UqUu8JS1Fodys 9xhHLabScb90D3UhikWblNga6JWgYntONysRbDkWQAfCOfNiLg5WFsntcutXQQlDWzi7 zRIw== 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=AgNoKuexDvllltNDVkXMuz5u2Y71BOdC/yXoc350jasv/wRIfkBJzPiXnfA8wQamho WBRYHX2AAOFmTvX5viWzemLBmtoH4ik1uf1D8iyfJIjIjWVbQYjQsTJKlskRzsWQMz77 A/vKMipD3NBEMAzPNwQDImh3DNvOhqvJavUlYO80BPYN4wuyO6aEDe7VDaVw0EPwJydz vJPOt3lzb9aVzZ4dHX9lJZxYnq8uKlIVFj8qe+vwiQPBMJMCEH2bvBzSgUTZumbFDKq1 M1jnpXkHm7DRugr7//3PVlM/QdjQ4KFp583nsAZfBy4x2VQxvdZ3i/A3eZQ3A9uiX+Jr RjNQ== 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.10.34; Mon, 28 Nov 2022 04:11:01 -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 S231883AbiK1MEa (ORCPT + 99 others); Mon, 28 Nov 2022 07:04:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36740 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231524AbiK1MAt (ORCPT ); Mon, 28 Nov 2022 07:00:49 -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 777231A380 for ; Mon, 28 Nov 2022 04:00:48 -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 1ozcoU-0005Mc-1I; Mon, 28 Nov 2022 13:00:42 +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 1ozcoS-000oBr-CU; Mon, 28 Nov 2022 13:00:41 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoO-00H6QS-BE; Mon, 28 Nov 2022 13:00:36 +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 13:00:25 +0100 Message-Id: <20221128120034.4075562-18-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741770895711213?= X-GMAIL-MSGID: =?utf-8?q?1750741770895711213?= 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 12:00:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26712 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5611607wrr; Mon, 28 Nov 2022 04:06:13 -0800 (PST) X-Google-Smtp-Source: AA0mqf57Hng8BRqrbR1PFKHrLa2joBf5GD3/2eda0PyZhd2XT7yNakD4bzR/LaUzkSyeX9zJ6b7G X-Received: by 2002:a63:551:0:b0:477:bf47:2e1 with SMTP id 78-20020a630551000000b00477bf4702e1mr21342132pgf.211.1669637172896; Mon, 28 Nov 2022 04:06:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637172; cv=none; d=google.com; s=arc-20160816; b=S+h2aD8SD5n69vl8Hqi29FTuKU48+zLJn4wNFU2Ba3l+10iDIX+VXU9fHBH6BH0NWV E1wDEN4TNkLDcyCliLkZ1z0UL0VMXsn/FsTM5i+WBM7VCvEgKqyhVF34+3ksQUYwAdQu a19rRxx4cpZkvUifiUbfebZoJltM3pBokNRKNHE2h17hlQQs8i4LRTNs5ZBcXgcf0Ciq E+ouggYXaRRVO2liTFc5bgkaGdvuNrdui8rXzSUBhXukVdhneevIyespfMkVhaN2J3PR RlaNfKBDLv8JXWZgyPZ+lPcigJnp5jKFzgnDgocLvsozR5dyIsWJRirFmDSU+x0EKJiR flyA== 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=Cevlp5FrbGZecdwdYwLffH6i0ukMQgOW3nIHihinldBzJMIANAlsCVXNgowiDOSgcL 1VKte6rBQjGrXuDBaJmd4qS8R7F1FqBb266mAAxTtrMGAH8YqbjPUFkKPECwMQNHKpcs FMlO74AdtwGgVneVm9Ovook48MkuqISYnnTkXucuqprtmbezHFExDcBtThSBRSRObCDh W5hN0MqlX97Nbmrc7VbptI1nEm/YUSK7x5/y/sDcIb2ibkU/EVwEV/Oq39nUlBRRHbiW 4VlYaAYVLWcBxGyPoSRgELry1vQB67ef3qlEOhfTOU6hX9NynwQDmCHEeWvXzYYnwAyw hGow== 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 b8-20020a170902d50800b00188f9e1e07csi13233942plg.525.2022.11.28.04.05.59; Mon, 28 Nov 2022 04:06: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 S231368AbiK1MEP (ORCPT + 99 others); Mon, 28 Nov 2022 07:04:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36484 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231522AbiK1MAt (ORCPT ); Mon, 28 Nov 2022 07:00:49 -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 5F9771A23F for ; Mon, 28 Nov 2022 04:00:48 -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 1ozcoT-0005M1-Gn; Mon, 28 Nov 2022 13:00:41 +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 1ozcoR-000oBh-W0; Mon, 28 Nov 2022 13:00:40 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoO-00H6Qi-Et; Mon, 28 Nov 2022 13:00:36 +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 13:00:26 +0100 Message-Id: <20221128120034.4075562-19-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741468312307188?= X-GMAIL-MSGID: =?utf-8?q?1750741468312307188?= 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 12:00:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26702 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610412wrr; Mon, 28 Nov 2022 04:04:50 -0800 (PST) X-Google-Smtp-Source: AA0mqf5X7fgKxnLk0eWZdUDnKWjL7jriA9jlJfCBr/SvW/HXVrhQ8URG7+t1w+CkoF4Y61djmblM X-Received: by 2002:a62:60c7:0:b0:56b:94f5:400c with SMTP id u190-20020a6260c7000000b0056b94f5400cmr31787781pfb.31.1669637090480; Mon, 28 Nov 2022 04:04:50 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637090; cv=none; d=google.com; s=arc-20160816; b=V7KQPa+/6qVwDRpA4v+nx2YOS3/qV1T7otZLhmjxsi51XfKTHAEsmpmpapZ39uW6x8 Y3S51gYh9DQJ2m5Z1kQhp+EWR6byFN+C4JgbOt/LrIGKkFB0yLDE+TU7c9Md4/0yPWzJ 3sjZDH6PUtygZfk3twAwPRlreJJXLAUa8OR5N7V38TfvTe4nAD4i92Q3Km8OYvmhVaPv 16pCiG+xFHncrOhsE0c8rE0Gr4pthXhXEMHJZvEZRvo/nClIeGipO5BKEWMh7FcaPe2M GcWuLOOGflJCPtefLDD6D0NLrjwpbthb5wCID6JK1pB5WwnzqdU20Mua8dWFARY150gP HBoA== 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=zBi3kr9+Qhg2TvBFA1OaDuJ7iwUCcYf0RedE7eB1r8x17y12VG9ySGBrwruEXR11W8 OPA4U6k6mohTqfXq1g4X7ygp5iVuHU4DYMrdr5lZHpNYOjxwIXGVBttkFls4VmEdLsnK 88GyPMWq8GlQfPf2YPJkEvQQYGJJnyHQEf9TX+DOCz7+//3NH4mlOeY7d03Jzq5jywTf dpVq71fUizB4Qe4vDICriHedWgt08rIlGKAXSuowt2Gzqxl5tY5oBZ3tMr9gtu1SMk4T CXGgcszhl0lS1lVIcgCoBp4h8s56II0x3yl/JC1iDqWBCru+kB4o6jaDeqyXb7cEPpVC ulHw== 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 62-20020a630141000000b004778207ac4dsi11822848pgb.396.2022.11.28.04.04.34; Mon, 28 Nov 2022 04:04: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 S231822AbiK1MDq (ORCPT + 99 others); Mon, 28 Nov 2022 07:03:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36644 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231504AbiK1MAs (ORCPT ); Mon, 28 Nov 2022 07:00:48 -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 0FE2B1A206 for ; Mon, 28 Nov 2022 04:00:47 -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 1ozcoS-0005LP-UP; Mon, 28 Nov 2022 13:00:40 +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 1ozcoR-000oBV-EY; Mon, 28 Nov 2022 13:00:40 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoO-00H6R0-H2; Mon, 28 Nov 2022 13:00:36 +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 13:00:27 +0100 Message-Id: <20221128120034.4075562-20-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741381620908142?= X-GMAIL-MSGID: =?utf-8?q?1750741381620908142?= 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 12:00:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26708 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610751wrr; Mon, 28 Nov 2022 04:05:14 -0800 (PST) X-Google-Smtp-Source: AA0mqf4QF4Zpt6R6fyPBTwpoxH1MgP8UjZaOnSDfRU4WGINAscPyqjDSiiwgmRhHmtXq0S2ZLnec X-Received: by 2002:a63:f4f:0:b0:476:a62d:386e with SMTP id 15-20020a630f4f000000b00476a62d386emr26105835pgp.501.1669637114606; Mon, 28 Nov 2022 04:05:14 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637114; cv=none; d=google.com; s=arc-20160816; b=ptJUKz+NY4rld2nQMPZG+wW/Sbdkljaf5GrqCcZ1Uhm2lzfoT5Tms/AdrLJW4SH665 8JRt6Lj8eKHtrpqE3iynIRi5YKYk+IQ+pHZtt1NXXG1aFWyufHegkTykN3//BTMU1Mek wIb3YeOH1ecmOYmzxIZkHyCADNxPUjphHoTyDVeS1hAYHngYuXbdUvwGTsBLg3Lwg9Vg BIhFfV0au0hQk5Dme2jMHFikMio7butoamVVn+UMu/gIV31caMlLuaTPhDKzMYFZccI7 vWPT6ilMqxPkbnrUz4A6vEJ3KArtK2oEmQkXOWQo2DXjoQNTYO3FfkK2fGyR3OUtlVl7 Pzmg== 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=ikNgbjsiCuceZk7FkG4sKMyFwo/u2TTG8DnjRVBUYqNhIkYbB9smPL7AiR0Uy0TFoV 6MHXeuwrMNBzIv3UxjnJ4PK+y1A4Op597g38/Ircl8s9nzAbham5PsI2b7PLhDrEjl7f o3bSRSo9fFgv/25VyMFtRsnrViAqr4W709GKwFdfibWxgqYsQgWATqM3b0ncVbzGa16B Gmo/zC4lzhZIuKfje19AJreCY5a9Ipf2tmQu554H5C+WJMStPYgAfLRkukj1ewpD2HKc DwQCJcFAWhXbjdzr7N/JpS1NxH5fyrealVuzlXuWAJDXBSGNg5zi2cSk30/iQmJR51kk TWAw== 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 t15-20020a6549cf000000b0047060a55c40si11716722pgs.712.2022.11.28.04.04.46; Mon, 28 Nov 2022 04:05:14 -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 S231725AbiK1MDj (ORCPT + 99 others); Mon, 28 Nov 2022 07:03:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36264 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231490AbiK1MAq (ORCPT ); Mon, 28 Nov 2022 07:00:46 -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 D4B2319C3A for ; Mon, 28 Nov 2022 04:00:45 -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 1ozcoR-0005I3-Ff; Mon, 28 Nov 2022 13:00:39 +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 1ozcoP-000oBA-RD; Mon, 28 Nov 2022 13:00:38 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoO-00H6RD-Js; Mon, 28 Nov 2022 13:00:36 +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 13:00:28 +0100 Message-Id: <20221128120034.4075562-21-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741407339831909?= X-GMAIL-MSGID: =?utf-8?q?1750741407339831909?= 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 12:00:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26698 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610278wrr; Mon, 28 Nov 2022 04:04:41 -0800 (PST) X-Google-Smtp-Source: AA0mqf7tDz0mlAjngF8XKMN03fQl5OJgltT2BZbLn5bbeu/4irtvAsvjIPeAgpN84NyAAmbp/pq6 X-Received: by 2002:a17:90a:7344:b0:218:a049:cc0f with SMTP id j4-20020a17090a734400b00218a049cc0fmr41704187pjs.176.1669637080966; Mon, 28 Nov 2022 04:04:40 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637080; cv=none; d=google.com; s=arc-20160816; b=NhFxyvqwxGAYJvXM7tfiL5QROJ5NMjdf+Ylnk7g4mvPhpxPXiIVJSC3Owf7TjzVRV5 LyWRuQs8GF7+W/L3roaokhIQvLxi7Yw6DdHPSwLGgj6yntn6c7Z4+moxNto4U+Ujd1eb RIDI8cGoQ/BqV6xhRJQdNf5n1KmsYx/9ztvAi5zTBuuuSbdn7OJvALFvAh1kCt77zxs+ eD5OJCkoW40rUlfEbqnlDhk0/3Tx/cHseUIl7VtZa5g4itnFgjXOuN6P1O3A1pBoNRMb UM05mWHAmDNKFco1qlSJmj/rOpW5HmSSI+fauDFUTZL099sEzmCWOkd6EEjN2jC0t34u 7XUA== 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=JO/h5n8YwDgga/Y8qFrbh3I3/sp6s2InkQaMxmLkykCf6C4ajjx6bbzw+MJdhIU4Xg 9HcDQ15emhZjGQv/qV5FS5tFYL41NxoOiblCbwZrEKOJH2ZZzOnCRuhObxMHG9HglAku T1ewzrGK8vuzxfkTAsJ3ysgizVFB4TzpnYEDAEzF4D8E9GG0azZwqVpRjd5TcnMTRc5V Ia2aTy+unrV5yz6vcxgoy9yocLfXbPMXEILhS4BfnSnZ6/c1OSRAh+MV07gi+Clil/lb 6puRNIDkR0C6GphdbzC0k4AuJqY/JDKmwgEunoMGnENIqUEd1halzaBPfxDEvPtFgxbm zofg== 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 x13-20020a17090300cd00b00188d47fa5d3si9862441plc.21.2022.11.28.04.04.23; Mon, 28 Nov 2022 04:04: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 S231667AbiK1MDW (ORCPT + 99 others); Mon, 28 Nov 2022 07:03:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36446 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231499AbiK1MAr (ORCPT ); Mon, 28 Nov 2022 07:00:47 -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 B571918E13 for ; Mon, 28 Nov 2022 04:00:46 -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 1ozcoR-0005J4-RV; Mon, 28 Nov 2022 13:00:39 +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 1ozcoQ-000oBD-6c; Mon, 28 Nov 2022 13:00:38 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoO-00H6RQ-LY; Mon, 28 Nov 2022 13:00:36 +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 13:00:29 +0100 Message-Id: <20221128120034.4075562-22-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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=unavailable 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?1750741371715736101?= X-GMAIL-MSGID: =?utf-8?q?1750741371715736101?= 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 12:00:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26715 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5612204wrr; Mon, 28 Nov 2022 04:06:57 -0800 (PST) X-Google-Smtp-Source: AA0mqf4Wqlzo0t4fA2NtyqvkOSZEaLxjcTtYhtxy+EdZdT9hSVR+mhc1QcDA+lsGlwL+l7uKvL9+ X-Received: by 2002:a05:6402:4028:b0:467:c33e:edd6 with SMTP id d40-20020a056402402800b00467c33eedd6mr23042052eda.146.1669637216812; Mon, 28 Nov 2022 04:06:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637216; cv=none; d=google.com; s=arc-20160816; b=a+GSVWTh0DD+cdyiQc1q+801BAlWutf98znFA33hmptWM5aMlv5t1bSyYdGPDGrqIR P+LWzxDXvbK/QdBI1hJoGts8ZtyI0pYe0UExwiTMBSX7ovqHb4HbLmeeXSQNmo6Gnu/H RBW8IY+CR0B3DZDXiLA2Xvgm75k/KdYZmfYlXwa1GMKP874DfaYE8J0jCHSml7Um3L0b DrDgd3hG1x7hy+myyvOmypUtD79OCAxBFozELilBXrDNhAwW4FVeakc5u1XzSxKdTo+v GWWpIP9ByyEAjNMctdIE89wgh8Qkkr3ij68eQzMhzwV695ZNpDYEbX+qa8JPaNfgJaRN /ddg== 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=nZiFwLh5/o2+j/uxjr3Fg6i27NFkwO6J0fPUO6UtF+qTWMeohfxGrDGAxonQLXmQk0 A7uKYzdahff7LjSzqNFuaWjUor93cnvX0TAPu5boEGigSChsxpL2gatcw3pYELHTxajC NGZIuU2mdBtkfjxyaEIa6eDHGa1q3Uuh8x5fH2lo2GWGaO3ielmgRFYEdukvv6EpHPJt buFnop9TGmInAikXlwt9l+Q44VbxrcCjEVPJHHlfpPYWXlUytXkyUyS6lQB7WN9uxH6+ eqXQ7LgepLBowPfKYAUtN4fsJ4wgPQFyxa5MFqVqA4CnnMOpwQx6UBmaQFEFBt7mPwdx dihw== 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.06.28; Mon, 28 Nov 2022 04:06: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 S231865AbiK1MET (ORCPT + 99 others); Mon, 28 Nov 2022 07:04:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36760 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231531AbiK1MAt (ORCPT ); Mon, 28 Nov 2022 07:00:49 -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 0386F18B19 for ; Mon, 28 Nov 2022 04:00:49 -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 1ozcoU-0005O5-Cx; Mon, 28 Nov 2022 13:00:42 +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 1ozcoS-000oCB-RO; Mon, 28 Nov 2022 13:00:41 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoO-00H6Rs-OU; Mon, 28 Nov 2022 13:00:36 +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 13:00:30 +0100 Message-Id: <20221128120034.4075562-23-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741514656972379?= X-GMAIL-MSGID: =?utf-8?q?1750741514656972379?= 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 12:00:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26703 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610422wrr; Mon, 28 Nov 2022 04:04:51 -0800 (PST) X-Google-Smtp-Source: AA0mqf47+M2c3EAOzvJ7PaLUi5MYFxR3i3Bolpe3ICmNc2rvK0TidAuSC9WQj0bRPsa+or6kGszr X-Received: by 2002:a17:902:a50d:b0:188:547d:b15e with SMTP id s13-20020a170902a50d00b00188547db15emr32601334plq.50.1669637091551; Mon, 28 Nov 2022 04:04:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637091; cv=none; d=google.com; s=arc-20160816; b=Mk9sKJG19w5Zrx8AR8RHEpmKlgWrVWC0HfMc5+QJCFYufMeSLhXFahVdN8JAjbPYw4 dcj9XhcznBVJF2RzOPZqGN7wCyon0BItJrtfK9VHksm0TBH4DclvFczHwLmI0H8qWcEn Q1+0LUhArHUciT5Df9z/y42ZL8NYdm452o39YycYr0tiXn5M9YEvoHDns1A2007W1Y0V Qxnk2NPv5fE2NF3rJhtkjYO3P4aPBdu2RYIJwE87pQiijOaetfnJdl/8hfGYCjcZ2V/j ycm4JCJ+F9GGF2sPPIxhzOrcQRUy85Y9ve55XYPPF1J7VkjOnbJiLh91UrBG21s1P+8z K7XQ== 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=trNHihFCsy7wN8ze0dC6CLy/JWYHmhg/YmYSeZVYW2Y1VnRMqjzeZUTE+Bfakx3pJq 1HiX/p/wCH/+g7LY4Yast1vMszUob48xWQGTepEtnVSBFsRoPaH8DkthHxuL3cMoF2Ef n57CjGFBcK75MMRgZjRCj385hq20YwhYRaVtA7D19Chxn8dzdeATO+hwEZjWjZ0sNBe0 K0DtXI0zRBehPHGfFtELpOmJswzMLU1C/UwRm8BxdYoCwxaSfQ91LUb3rBQJswK89gPF iUxemrHSnM6625G456VPklgySTZWApLxVfUoqmSfQpBNApE0tmkWbDAIRVyNYYv9Nx4q QifQ== 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 x11-20020a17090a8a8b00b002189d2ba5a3si11542162pjn.133.2022.11.28.04.04.35; Mon, 28 Nov 2022 04:04:51 -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 S231754AbiK1MDs (ORCPT + 99 others); Mon, 28 Nov 2022 07:03:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36448 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231508AbiK1MAs (ORCPT ); Mon, 28 Nov 2022 07:00:48 -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 61FF41A20C for ; Mon, 28 Nov 2022 04:00:47 -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 1ozcoT-0005Lk-C9; Mon, 28 Nov 2022 13:00:41 +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 1ozcoR-000oBZ-Pt; Mon, 28 Nov 2022 13:00:40 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoO-00H6SK-Ra; Mon, 28 Nov 2022 13:00:36 +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 13:00:31 +0100 Message-Id: <20221128120034.4075562-24-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741382761687484?= X-GMAIL-MSGID: =?utf-8?q?1750741382761687484?= 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 12:00:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 26704 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610428wrr; Mon, 28 Nov 2022 04:04:52 -0800 (PST) X-Google-Smtp-Source: AA0mqf6BM8/l0g8ceRd9xWeVdpU6U3NfXvLAsYAyTKf21SNBdbZqwmLp/qWiRoo5OKwh/k3E3eGi X-Received: by 2002:a63:5517:0:b0:42f:e191:2d35 with SMTP id j23-20020a635517000000b0042fe1912d35mr46084449pgb.1.1669637092317; Mon, 28 Nov 2022 04:04:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637092; cv=none; d=google.com; s=arc-20160816; b=osimRfTrVvR8KlfJ6wc48QfJCObxQFu6j+EG2VejKPlAkB4LhaGz/eJwlu0VngF+/V qIo+fyX1Z15izcnC4NjFM5ak+gkUvBsNMI7NpWWZ8o7pwsPaqHG9jISbiz7m50KOtU5/ fGwe1Ro4wSmOVaz8yAVJqlkExPozoPjT8xtbuRn/qzs+qATA/uo1PEt8EF9ZJ7uIXXWW xhsq5RAAVGOewVLovDodfU74oB0XR/SrbPn21tbD3Y83lQQxoK2IBYRTkqLB3D80IZ7Y JEpTOYwVsHGPGW6fL6DbS43xhI3R4mhvbSbuHk2MfIGl9UX5VDHXbd85hwN0cgf4yGI6 EiKQ== 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=vm5owyWYUOdFYCrSFaDp3viX6h3zGSNGaFcZyduTeelOgpwHyse6zBgZil9NyRTh8k +eMuu1rtNXEV3FqVa63LHSfQEdMfW4r6i73x+uf2aoW6S6gj1et3Kut3gcOaPQ504C9u 5D/Cl673btVSjqXjkmUrRQrRWQghJCCImQknEXKUjTtiFf1v1xIX9aqR0Dk+hP9wjwQe vLZtUmtR8j79afvQQOiPEzDC09iqxIphTq5GkGxbs3fIgeAGjKsGtTgC5oVPXcy0p0Ni DFR2U+Rsz0muHUWAciwG+kIha8g8J4w90jp0NCOvWEwg4c2Kp3IRLY+uT7DhhuChMvw+ gk6g== 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 21-20020a631355000000b0047839ae135csi22301pgt.434.2022.11.28.04.04.36; Mon, 28 Nov 2022 04:04:52 -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 S231830AbiK1MDx (ORCPT + 99 others); Mon, 28 Nov 2022 07:03:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36716 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231515AbiK1MAs (ORCPT ); Mon, 28 Nov 2022 07:00:48 -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 C975D18B36 for ; Mon, 28 Nov 2022 04:00:47 -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 1ozcoT-0005Lj-Dm; Mon, 28 Nov 2022 13:00:41 +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 1ozcoR-000oBY-P1; Mon, 28 Nov 2022 13:00:40 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoO-00H6Sp-U8; Mon, 28 Nov 2022 13:00:36 +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 13:00:32 +0100 Message-Id: <20221128120034.4075562-25-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741383326721150?= X-GMAIL-MSGID: =?utf-8?q?1750741383326721150?= 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 12:00: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: 26706 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610557wrr; Mon, 28 Nov 2022 04:05:02 -0800 (PST) X-Google-Smtp-Source: AA0mqf7CoxcIgAvPaWEd5oZQywJs57vEdbYKtLFcJYlTTmaTeWqrN5F8x3yYdk9oViFgtm0MHtTe X-Received: by 2002:a17:902:ead1:b0:188:f461:800f with SMTP id p17-20020a170902ead100b00188f461800fmr31405694pld.56.1669637102001; Mon, 28 Nov 2022 04:05:02 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637101; cv=none; d=google.com; s=arc-20160816; b=asxQkuSBmzQtI77xb8Ef0a8ERIZP5mt3RnpBiOSs6qjWm7+CylhsIB7s7i3YJDqDsX R24BMGuNSxsP4tj9b9koEjTvmIvgyiBz4pVTzODMl9lw76Mv+XPRYeTQCdilGuKYLZg+ VUxFGw5zUz/uC5A2Ewy1tvi9FinXT61nGLLL0cMm6JUiER14xbLYiGDfJ7ImtAtWzwir Jus1ROx1A8MVJKglnV5KDOSSXbUHEKJ7WNGyXIAexBXEWnX+eCh/OT4v3VTdAIK1LH6c /R0fMnsM3sUIQInxeWX8xc9WfWJkGf30Hk5qD2qz2OgCFagc+i52ZbKq2f2cZl2jBGwt fLpg== 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=ZXnBldTeDE2Dz2dTwucpDb+8NBMnFBR0GixdKCiPG3W+fvTspJqwlC5cOlyOGGmE3w yYeWkN4Fta9T4PN7fos77ZFKiyQ/ce6fO20HLnxDjm0QRMxLvIzizk45PvQ0H2UDWji+ Ant1J8IAs6uO6fj0Q/BBAClrcWo1YI53csJSYnestlViZoRvMIhEwEkYrwtAWk6Lm0oQ PxBpy2utxzdhRiD1uMFOTs+/1IOi0cWdh407eE7uWXulV7qBmx2vmeWlfyj1DtFZg5Wa 8VKWsoQ6HYB3ck48lQ10beehveqOLvDRNlP8VgC9hUbm/L90bD1PXMD2/4o0MAJdafwk IUBw== 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 h4-20020a636c04000000b00461bf5f86fdsi12379112pgc.403.2022.11.28.04.04.48; Mon, 28 Nov 2022 04:05:01 -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 S231844AbiK1MED (ORCPT + 99 others); Mon, 28 Nov 2022 07:04:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36754 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231530AbiK1MAt (ORCPT ); Mon, 28 Nov 2022 07:00:49 -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 771071A041 for ; Mon, 28 Nov 2022 04:00:48 -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 1ozcoU-0005Mj-1A; Mon, 28 Nov 2022 13:00:42 +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 1ozcoS-000oBt-EU; Mon, 28 Nov 2022 13:00:41 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoP-00H6TM-03; Mon, 28 Nov 2022 13:00:37 +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 13:00:33 +0100 Message-Id: <20221128120034.4075562-26-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741393430946647?= X-GMAIL-MSGID: =?utf-8?q?1750741393430946647?= 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 12:00: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: 26709 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:f944:0:0:0:0:0 with SMTP id q4csp5610770wrr; Mon, 28 Nov 2022 04:05:16 -0800 (PST) X-Google-Smtp-Source: AA0mqf5GVAFWRQZ/SjsyW1B+YJFYyYLHJm1/imcu9xtuuCqdt2nSlhIEq5lDWvmG+FI0M00nndMv X-Received: by 2002:a17:902:dac2:b0:189:7d5:26ea with SMTP id q2-20020a170902dac200b0018907d526eamr31488136plx.145.1669637116099; Mon, 28 Nov 2022 04:05:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669637116; cv=none; d=google.com; s=arc-20160816; b=KrMm9D5t3SP0bdqreag6n02lN0+mWoCCCsNWU1TShB9QBKfPHKQbiZeYTrq3+yxSoU UPznWN+GyqQyRKVwsXtT2nLRzhOdn//9sA8laSNafb+fq06mb9ld7ReOEw+4vZ/BgkLZ HZ4UP6dw/rJDk6i1XRKoJF/W2oB6iU6AEy3W+snRoTQQ4xsXWD1v2aEcx52gKnxJk+Cy WYaMLvTD8I9EUCcYcdFZKXqZR4C3znAlxyc6fg4dTw7uX+q6CFWNybksRARtLmKCEsLl jo9+jJ+hje2RPDeqyZ/oU1ZVMHXWP2hWHEU8vICq3iUBAqP8WYT0HUoRogZsBMrgq50v XqIg== 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=lAG/a0Jnm4+V4jWRA8wLKbl48BVGZqkmEHHcfTq6lJcWje60NOeoBSkrr3rOk9a8Rv ILMFqbpEG8eC2+0wzcylxcdRBI+AqHrF7aVATPQ3dd7OyIayjZTtziXjVQG0RF7Fkaov nH9nuqbeVef7vfi9NUis8xvoh1PNqUriucRqUW1YoS3DOqeaoEUejKC64QAowCqm1EtL kOBenl25IBDe3pUaagz9UlS9kSmFci69s5DqLjLWFjPVmBoW5MhWpF3QlXm4JuDzhZES MQHeafkhajB4ujZrcpXWqieGiHEjIHKIEAJn+CO4XcpiJ+FIMf2m4WYbPnE6cok2237p fPxA== 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 u12-20020a63df0c000000b00476e640ddfesi12060266pgg.80.2022.11.28.04.04.50; Mon, 28 Nov 2022 04:05:16 -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 S231849AbiK1MEH (ORCPT + 99 others); Mon, 28 Nov 2022 07:04:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36744 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231526AbiK1MAt (ORCPT ); Mon, 28 Nov 2022 07:00:49 -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 779371A381 for ; Mon, 28 Nov 2022 04:00:48 -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 1ozcoU-0005NI-8C; Mon, 28 Nov 2022 13:00:42 +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 1ozcoS-000oBx-Jr; Mon, 28 Nov 2022 13:00:41 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1ozcoP-00H6Th-3L; Mon, 28 Nov 2022 13:00:37 +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 13:00:34 +0100 Message-Id: <20221128120034.4075562-27-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20221128120034.4075562-1-o.rempel@pengutronix.de> References: <20221128120034.4075562-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?1750741408881670198?= X-GMAIL-MSGID: =?utf-8?q?1750741408881670198?= 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,