From patchwork Sun Oct 24 19:48:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Lunn X-Patchwork-Id: 12580425 X-Patchwork-Delegate: kuba@kernel.org Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 318DCC433F5 for ; Sun, 24 Oct 2021 19:48:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0642560E96 for ; Sun, 24 Oct 2021 19:48:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232134AbhJXTuq (ORCPT ); Sun, 24 Oct 2021 15:50:46 -0400 Received: from vps0.lunn.ch ([185.16.172.187]:55960 "EHLO vps0.lunn.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232124AbhJXTup (ORCPT ); Sun, 24 Oct 2021 15:50:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lunn.ch; s=20171124; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:From:Sender:Reply-To:Subject:Date: Message-ID:To:Cc:MIME-Version:Content-Type:Content-Transfer-Encoding: Content-ID:Content-Description:Content-Disposition:In-Reply-To:References; bh=3Md8mslOkwV/+QOeqkRJJPLvrTv3nlUBSv++1en98rA=; b=g2wc4XSPsShqksw9k6/X5Bpay9 VgIGrY8+QdaAjuU++gGDyyv1dGiTKg+3T/RYO0gUFcOKTq9jtAu1X+B+uhG2A0bJhWB1Qmuwlwog7 hcoB3M0ERU7m2vf4G5kHqoQfmHF2LOfYiMCgLIdKPrdaXH/dHxVK+mOhpKXVDBqgau9I=; Received: from andrew by vps0.lunn.ch with local (Exim 4.94.2) (envelope-from ) id 1mejTf-00BacZ-6U; Sun, 24 Oct 2021 21:48:19 +0200 From: Andrew Lunn To: David Miller , Jakub Kicinski Cc: netdev , Walter.Stoll@duagon.com, Russell King , Heiner Kallweit , Andrew Lunn Subject: [PATCH net 1/4] phy: phy_ethtool_ksettings_get: Lock the phy for consistency Date: Sun, 24 Oct 2021 21:48:02 +0200 Message-Id: <20211024194805.2762333-2-andrew@lunn.ch> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20211024194805.2762333-1-andrew@lunn.ch> References: <20211024194805.2762333-1-andrew@lunn.ch> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org X-Patchwork-Delegate: kuba@kernel.org The PHY structure should be locked while copying information out if it, otherwise there is no guarantee of self consistency. Without the lock the PHY state machine could be updating the structure. Fixes: 2d55173e71b0 ("phy: add generic function to support ksetting support") Signed-off-by: Andrew Lunn --- drivers/net/phy/phy.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index f124a8a58bd4..8457b829667e 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -299,6 +299,7 @@ EXPORT_SYMBOL(phy_ethtool_ksettings_set); void phy_ethtool_ksettings_get(struct phy_device *phydev, struct ethtool_link_ksettings *cmd) { + mutex_lock(&phydev->lock); linkmode_copy(cmd->link_modes.supported, phydev->supported); linkmode_copy(cmd->link_modes.advertising, phydev->advertising); linkmode_copy(cmd->link_modes.lp_advertising, phydev->lp_advertising); @@ -317,6 +318,7 @@ void phy_ethtool_ksettings_get(struct phy_device *phydev, cmd->base.autoneg = phydev->autoneg; cmd->base.eth_tp_mdix_ctrl = phydev->mdix_ctrl; cmd->base.eth_tp_mdix = phydev->mdix; + mutex_unlock(&phydev->lock); } EXPORT_SYMBOL(phy_ethtool_ksettings_get);