Received: by 2002:a05:7412:d8a:b0:e2:908c:2ebd with SMTP id b10csp3618698rdg; Wed, 18 Oct 2023 00:11:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHmSjDJchU5/ngJlZghXZjYspMt0x5GySwF8FcHE+WMjrzfvD8D4dc53nT9KjYlMYYvjP/H X-Received: by 2002:a25:8481:0:b0:d9a:d170:1b0f with SMTP id v1-20020a258481000000b00d9ad1701b0fmr4571680ybk.12.1697613092092; Wed, 18 Oct 2023 00:11:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697613092; cv=none; d=google.com; s=arc-20160816; b=hf1zzs6foYUj+HF0pD/nRitRABSn8Qh82lWVcXj2u5vQiCkmC5sYauv1vn983JlIqV cLYoTaR4kn/mtPAKiyQc4lGKvgaNY8Rv9GPfJ2b+kDBqfkUQFggGR/VIiy8WgB3IZkpi zat25+joizIaWLPDqyV7Q2+c5thxNakmZz7j+SlpQ95DIBpi7rWpCTgayUR3K9ntjDaW fRPQlL/Sv1P6aaeKhPo/oYWWwyuiwZbrhhqtR5x5fFdwJWYgtN2aDFAKqUt5/yqyqZah /hF0jMYVA/mar228ql5aqdXyaLq+R7+l/CcKrkXbANVXSPDwLiJQIYw/FoIfS2WHtZyo kIEw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from; bh=P2Qes4OGteQbNxpiafb50gsK6XJOnAedPVdE9Fl6Zh0=; fh=ORiYWFGzsNPHx3R9sUr4HChCwLBtdlxf7scKSjOZpOw=; b=IECfgGczqGpczI07fZx4M/kbjVoRf/Bn3MXRkxuLPjYnQm4cTtzQHy8uCxhsvRBzyT atl8cWZhMZL9iZfwqU8BienWgp7KxBHMmnGqXtbuJEx1HuhQf0A5DCGbhf5gpF2DANlE 7MjBsC369bvdC9Nx/KjwMEYYbqiWTHlEw+NlU69ih0gx3qXdsnIZ4Nj7WF7Km7FUW01n DGGimB1Z3UWSIl+uFGtSbYsXxivo63HRMnCvoQVKistNSJyXg7p2kDO5zkDUC5TEThAX DxTpKae1iUQ9IVKVJjG9RNJg4Dud1fUmpLodB07StSNVONPyWh8Q+0S3nm0EoZlaL8Hd fF+w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id s19-20020aa78bd3000000b0068fea8a6169si3187944pfd.404.2023.10.18.00.11.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 18 Oct 2023 00:11:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 5B3A680886AC; Wed, 18 Oct 2023 00:10:39 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229777AbjJRHKg (ORCPT + 99 others); Wed, 18 Oct 2023 03:10:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40308 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229761AbjJRHKe (ORCPT ); Wed, 18 Oct 2023 03:10:34 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2E6B9FD for ; Wed, 18 Oct 2023 00:10:33 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qt0h1-0007Yu-S9; Wed, 18 Oct 2023 09:10:11 +0200 Received: from [2a0a:edc0:0:1101:1d::39] (helo=dude03.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qt0gz-002V9d-4t; Wed, 18 Oct 2023 09:10:09 +0200 Received: from localhost ([::1] helo=dude03.red.stw.pengutronix.de) by dude03.red.stw.pengutronix.de with esmtp (Exim 4.96) (envelope-from ) id 1qt0gz-003JoA-09; Wed, 18 Oct 2023 09:10:09 +0200 From: Johannes Zink Date: Wed, 18 Oct 2023 09:09:57 +0200 Subject: [PATCH net-next v2 5/5] net: stmmac: do not silently change auxiliary snapshot capture channel MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20231010-stmmac_fix_auxiliary_event_capture-v2-5-51d5f56542d7@pengutronix.de> References: <20231010-stmmac_fix_auxiliary_event_capture-v2-0-51d5f56542d7@pengutronix.de> In-Reply-To: <20231010-stmmac_fix_auxiliary_event_capture-v2-0-51d5f56542d7@pengutronix.de> To: Alexandre Torgue , Jose Abreu , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Maxime Coquelin , Richard Cochran , Kurt Kanzenbach Cc: patchwork-jzi@pengutronix.de, netdev@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, kernel@pengutronix.de, vee.khee.wong@linux.intel.com, tee.min.tan@intel.com, rmk+kernel@armlinux.org.uk, bartosz.golaszewski@linaro.org, ahalaney@redhat.com, horms@kernel.org, Johannes Zink X-Mailer: b4 0.12.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: j.zink@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,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-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Wed, 18 Oct 2023 00:10:39 -0700 (PDT) Even though the hardware theoretically supports up to 4 simultaneous auxiliary snapshot capture channels, the stmmac driver does support only a single channel to be active at a time. Previously in case of a PTP_CLK_REQ_EXTTS request, previously active auxiliary snapshot capture channels were silently dropped and the new channel was activated. Instead of silently changing the state for all consumers, log an error and return -EBUSY if a channel is already in use in order to signal to userspace to disable the currently active channel before enabling another one. Signed-off-by: Johannes Zink --- Changelog: v1 -> v2: no changes --- drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c index 6b639b62f778..bffa5c017032 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.c @@ -191,11 +191,23 @@ static int stmmac_enable(struct ptp_clock_info *ptp, priv->systime_flags); write_unlock_irqrestore(&priv->ptp_lock, flags); break; - case PTP_CLK_REQ_EXTTS: + case PTP_CLK_REQ_EXTTS: { + u8 channel; + mutex_lock(&priv->aux_ts_lock); acr_value = readl(ptpaddr + PTP_ACR); + channel = ilog2(FIELD_GET(PTP_ACR_MASK, acr_value)); acr_value &= ~PTP_ACR_MASK; + if (on) { + if (FIELD_GET(PTP_ACR_MASK, acr_value)) { + netdev_err(priv->dev, + "Cannot enable auxiliary snapshot %d as auxiliary snapshot %d is already enabled", + rq->extts.index, channel); + mutex_unlock(&priv->aux_ts_lock); + return -EBUSY; + } + priv->plat->flags |= STMMAC_FLAG_EXT_SNAPSHOT_EN; /* Enable External snapshot trigger */ @@ -213,6 +225,7 @@ static int stmmac_enable(struct ptp_clock_info *ptp, !(acr_value & PTP_ACR_ATSFC), 10, 10000); break; + } default: break; -- 2.39.2