From patchwork Tue Sep 12 12:21:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pawel Dembicki X-Patchwork-Id: 138233 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9ecd:0:b0:3f2:4152:657d with SMTP id t13csp466891vqx; Tue, 12 Sep 2023 08:01:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGlSZzyI8PK0orUD4NdnV2/knmdJmxg96iH3/WSb85qZiMhZLAXCeanL7KF2Nlo/2xFvGa/ X-Received: by 2002:a17:902:e881:b0:1c3:1ceb:97a4 with SMTP id w1-20020a170902e88100b001c31ceb97a4mr13414680plg.24.1694530892507; Tue, 12 Sep 2023 08:01:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694530892; cv=none; d=google.com; s=arc-20160816; b=nO6Zmd4kwt6r3lrr1bBVoq84k0swaMD2/Rn5cuRCyWDlsnEbq21/dwZRybWk2Vznjr aZTRBxHpEDZcy9PUG5nVAiVFF4SFfO6H3RY64yWvZQj90GLPQhKQYkU76svCCbmwbKND yiHD46dfW1V65FnXLaJCGaKbFv/AhbbgG6ttnCew1xjB/xNOKv5NTZy4A7y3FMoId3Cq 392xDoz5CCaj8GkYSwGFOV5Ns+QF4rxGNkx+mAVcmEtlUB5qZk8FmuwQObtnD0QLb1Cu AqTUMW0tjY5DzIGFEZ+iRAv8+Gu5lANiZO3m3+kZha3+00uXsr0d01evVCFXReIdc88z ZdCg== 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 :dkim-signature; bh=bnLlBCmtmpQwQX7mUFEwOLmXNNLfxSSVf+nmIrWyOZs=; fh=30kAl1g9AkxuEgeaYxsvI/0nj7uz2Q8n1xb6SNv7Q9s=; b=kITmoP/64Xy21SOYsIFnEkYA3ENM5VVY3qDncdEb/dCMinaoqeyhIkJUs/+LcY+uC/ pWhSSw0zO06FdPDdWa4ufIbeJyDl3r/k2lvSkEO5EymjakR+8YMcdFWv4f6OHhn/GTI4 TgrOAzEi0UIVcHJd4kyQq/4CYB486lhsVuGd8aD/O9stzZBCsI8WhB4HQXDYStk0RGHV BpT/YzDW2ZpOBDxD+yntdQZR2n1r2qN71oy1z+/+izjWQHgtn8IRIQ1sPUDzTeKQP+Gk DQFDtwkagW71Rs7e6ThXYA9Fb0ac3uG6PWb5VjchVuW3S1GqR2RDr6XbuS84crYj2d+G ErFQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b=EYSrpED2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from agentk.vger.email (agentk.vger.email. [23.128.96.32]) by mx.google.com with ESMTPS id ay6-20020a1709028b8600b001c08c0baedcsi7956341plb.67.2023.09.12.08.01.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Sep 2023 08:01:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) client-ip=23.128.96.32; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20221208 header.b=EYSrpED2; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.32 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by agentk.vger.email (Postfix) with ESMTP id 5A0618174A4C; Tue, 12 Sep 2023 05:26:37 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at agentk.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235115AbjILM0a (ORCPT + 37 others); Tue, 12 Sep 2023 08:26:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47914 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235140AbjILM0N (ORCPT ); Tue, 12 Sep 2023 08:26:13 -0400 Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com [IPv6:2a00:1450:4864:20::135]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E20AC10E3; Tue, 12 Sep 2023 05:26:08 -0700 (PDT) Received: by mail-lf1-x135.google.com with SMTP id 2adb3069b0e04-502b1bbe5c3so4277767e87.1; Tue, 12 Sep 2023 05:26:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1694521567; x=1695126367; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bnLlBCmtmpQwQX7mUFEwOLmXNNLfxSSVf+nmIrWyOZs=; b=EYSrpED2Cj87rwpIj26QLhbqEhLfgTWxmFxunudHer/hmDZkZy9DTJDmuh6LZh5wRZ kKpLbwF0mYSMO/GiKr2WWuNFYPs2M1t8xf2aNf0VhcEpUNgIsOS7dB4Ipy/WdjkO1KwA 58e17DgoSo5bQGUfqbrHi4luJuCrusUGNC94FqYEEy6DeY08O4OedEP/gQkgHtonRSxf Bpurbv22SQmU4NaCjNYhHJZFTmlmGB4BklTVbdrqZfbM+uUI7aaXD7M+VUyMIJhO+xBY VGUVo2OA/twMS4E71NKIsA04wxUFQXUstFAZOGpGYSfX5ptTly2p7ncx8JpGaf0GajMb EwCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694521567; x=1695126367; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bnLlBCmtmpQwQX7mUFEwOLmXNNLfxSSVf+nmIrWyOZs=; b=jBpc5nZC6pdPjNWGKlC1PZU540ud55MqC5LQVEb4MMgDrKGMRdUIns0krt8IV2RvTO dRR89kV/IgImZAoWbJQTrixaBlRkSNyqwgIfs62G4yNjtxXOE4uPctYIqO+qZFDZUzsG D9kBFrJSKRSpYtDtC8Mx/rihsd4tP3Pe+LBGzL0Ib8cW/QNGmyVNdCW8s5Nj+RNQitVo Q/DGauUQ+gtmFllOdT//7sqb4vIRx9RTInIKm3JK9BlzH6uVE0f8OnURKpXgABgEckGh +Hw/qftOK4bLCgUYp0O/uS/BUxtxECqTnRkNJN+A/BlGI41+s16Bu/KB9SN9mT+4UvXN OVHQ== X-Gm-Message-State: AOJu0Yz72mpFT6IOO+AbpQCEBi+h0FbdcEWVOp75ZDZe2zDKr7bZiXxL V/eEhf3A704xr44ywOTUFuWlnXbpdt2ecw== X-Received: by 2002:a05:6512:15a3:b0:501:c1d4:cf68 with SMTP id bp35-20020a05651215a300b00501c1d4cf68mr12169998lfb.15.1694521566405; Tue, 12 Sep 2023 05:26:06 -0700 (PDT) Received: from WBEC325.dom.local ([185.188.71.122]) by smtp.gmail.com with ESMTPSA id g21-20020ac25395000000b004fe333128c0sm1737327lfh.242.2023.09.12.05.26.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Sep 2023 05:26:06 -0700 (PDT) From: Pawel Dembicki To: netdev@vger.kernel.org Cc: Dan Carpenter , Simon Horman , Pawel Dembicki , Russell King , Andrew Lunn , Florian Fainelli , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , linux-kernel@vger.kernel.org Subject: [PATCH net-next v3 1/8] net: dsa: vsc73xx: use read_poll_timeout instead delay loop Date: Tue, 12 Sep 2023 14:21:55 +0200 Message-Id: <20230912122201.3752918-2-paweldembicki@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230912122201.3752918-1-paweldembicki@gmail.com> References: <20230912122201.3752918-1-paweldembicki@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (agentk.vger.email [0.0.0.0]); Tue, 12 Sep 2023 05:26:37 -0700 (PDT) X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,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 agentk.vger.email X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1776844425304788157 X-GMAIL-MSGID: 1776844425304788157 This commit switches delay loop to read_poll_timeout macro during Arbiter empty check in adjust link function. As Russel King suggested: "This [change] avoids the issue that on the last iteration, the code reads the register, test it, find the condition that's being waiting for is false, _then_ waits and end up printing the error message - that last wait is rather useless, and as the arbiter state isn't checked after waiting, it could be that we had success during the last wait." It also remove one short msleep delay. Suggested-by: Russell King Signed-off-by: Pawel Dembicki Reviewed-by: Andrew Lunn --- v3: - Add "Reviewed-by" to commit message only v2: - introduced patch drivers/net/dsa/vitesse-vsc73xx-core.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/drivers/net/dsa/vitesse-vsc73xx-core.c b/drivers/net/dsa/vitesse-vsc73xx-core.c index 4f09e7438f3b..b117c0c18e36 100644 --- a/drivers/net/dsa/vitesse-vsc73xx-core.c +++ b/drivers/net/dsa/vitesse-vsc73xx-core.c @@ -779,7 +779,7 @@ static void vsc73xx_adjust_link(struct dsa_switch *ds, int port, * after a PHY or the CPU port comes up or down. */ if (!phydev->link) { - int maxloop = 10; + int ret, err; dev_dbg(vsc->dev, "port %d: went down\n", port); @@ -794,19 +794,16 @@ static void vsc73xx_adjust_link(struct dsa_switch *ds, int port, VSC73XX_ARBDISC, BIT(port), BIT(port)); /* Wait until queue is empty */ - vsc73xx_read(vsc, VSC73XX_BLOCK_ARBITER, 0, - VSC73XX_ARBEMPTY, &val); - while (!(val & BIT(port))) { - msleep(1); - vsc73xx_read(vsc, VSC73XX_BLOCK_ARBITER, 0, - VSC73XX_ARBEMPTY, &val); - if (--maxloop == 0) { - dev_err(vsc->dev, - "timeout waiting for block arbiter\n"); - /* Continue anyway */ - break; - } - } + ret = read_poll_timeout(vsc73xx_read, err, + err < 0 || (val & BIT(port)), + 1000, 10000, false, + vsc, VSC73XX_BLOCK_ARBITER, 0, + VSC73XX_ARBEMPTY, &val); + if (ret) + dev_err(vsc->dev, + "timeout waiting for block arbiter\n"); + else if (err < 0) + dev_err(vsc->dev, "error reading arbiter\n"); /* Put this port into reset */ vsc73xx_write(vsc, VSC73XX_BLOCK_MAC, port, VSC73XX_MAC_CFG,