All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Walle <michael@walle.cc>
To: Dan Carpenter <dan.carpenter@oracle.com>
Cc: Andrew Lunn <andrew@lunn.ch>,
	Heiner Kallweit <hkallweit1@gmail.com>,
	Russell King <linux@armlinux.org.uk>,
	"David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>,
	netdev@vger.kernel.org, kernel-janitors@vger.kernel.org
Subject: Re: [PATCH v2 net-next] net: phy: icplus: call phy_restore_page() when phy_select_page() fails
Date: Fri, 19 Feb 2021 11:46:23 +0100	[thread overview]
Message-ID: <b10a9b2cf171976e710c309fc82a4728@walle.cc> (raw)
In-Reply-To: <YC+OpFGsDPXPnXM5@mwanda>

Am 2021-02-19 11:10, schrieb Dan Carpenter:
> The comments to phy_select_page() say that "phy_restore_page() must
> always be called after this, irrespective of success or failure of this
> call."  If we don't call phy_restore_page() then we are still holding
> the phy_lock_mdio_bus() so it eventually leads to a dead lock.
> 
> Fixes: 32ab60e53920 ("net: phy: icplus: add MDI/MDIX support for 
> IP101A/G")
> Fixes: f9bc51e6cce2 ("net: phy: icplus: fix paged register access")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Reviewed-by: Michael Walle <michael@walle.cc>

I assume, this has to go through "net" if the merge window is closed, 
no?

-michael

> ---
> v2: fix a couple other instances I missed in v1
> 
>  drivers/net/phy/icplus.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/phy/icplus.c b/drivers/net/phy/icplus.c
> index 3e431737c1ba..a00a667454a9 100644
> --- a/drivers/net/phy/icplus.c
> +++ b/drivers/net/phy/icplus.c
> @@ -239,7 +239,7 @@ static int ip101a_g_config_intr_pin(struct
> phy_device *phydev)
> 
>  	oldpage = phy_select_page(phydev, IP101G_DEFAULT_PAGE);
>  	if (oldpage < 0)
> -		return oldpage;
> +		goto out;
> 
>  	/* configure the RXER/INTR_32 pin of the 32-pin IP101GR if needed: */
>  	switch (priv->sel_intr32) {
> @@ -314,7 +314,7 @@ static int ip101a_g_read_status(struct phy_device 
> *phydev)
> 
>  	oldpage = phy_select_page(phydev, IP101G_DEFAULT_PAGE);
>  	if (oldpage < 0)
> -		return oldpage;
> +		goto out;
> 
>  	ret = __phy_read(phydev, IP10XX_SPEC_CTRL_STATUS);
>  	if (ret < 0)
> @@ -349,7 +349,8 @@ static int ip101a_g_read_status(struct phy_device 
> *phydev)
>  static int ip101a_g_config_mdix(struct phy_device *phydev)
>  {
>  	u16 ctrl = 0, ctrl2 = 0;
> -	int oldpage, ret;
> +	int oldpage;
> +	int ret = 0;
> 
>  	switch (phydev->mdix_ctrl) {
>  	case ETH_TP_MDI:
> @@ -367,7 +368,7 @@ static int ip101a_g_config_mdix(struct phy_device 
> *phydev)
> 
>  	oldpage = phy_select_page(phydev, IP101G_DEFAULT_PAGE);
>  	if (oldpage < 0)
> -		return oldpage;
> +		goto out;
> 
>  	ret = __phy_modify(phydev, IP10XX_SPEC_CTRL_STATUS,
>  			   IP101A_G_AUTO_MDIX_DIS, ctrl);

-- 
-michael

  reply	other threads:[~2021-02-19 10:47 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-19 10:10 [PATCH v2 net-next] net: phy: icplus: call phy_restore_page() when phy_select_page() fails Dan Carpenter
2021-02-19 10:46 ` Michael Walle [this message]
2021-02-19 11:09   ` Dan Carpenter
2021-02-19 11:36 ` Russell King - ARM Linux admin
2021-02-23  3:00 ` patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b10a9b2cf171976e710c309fc82a4728@walle.cc \
    --to=michael@walle.cc \
    --cc=andrew@lunn.ch \
    --cc=dan.carpenter@oracle.com \
    --cc=davem@davemloft.net \
    --cc=hkallweit1@gmail.com \
    --cc=kernel-janitors@vger.kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.