Patch "phy: core: fix wrong err handle for phy_power_on" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
phy: core: fix wrong err handle for phy_power_on
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
phy-core-fix-wrong-err-handle-for-phy_power_on.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
b82fcabe212a11698fd4b3e604d2f81d929d22f6Mon Sep 17 00:00:00 2001
From: Shawn Lin <[email protected]>
Date: Thu, 28 Jan 2016 16:14:18 +0800
Subject: phy: core: fix wrong err handle for phy_power_on
From: Shawn Lin <[email protected]>
commit b82fcabe212a11698fd4b3e604d2f81d929d22f6 upstream.
If phy_pm_runtime_get_sync failed but we already enable regulator, current code return directly without doing regulator_disable. This patch fix this problem and cleanup err handle of phy_power_on to be more readable.
--- drivers/phy/phy-core.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-)
drivers/phy/phy-core.c +9 -7
@@ -275,20 +275,21 @@ EXPORT_SYMBOL_GPL(phy_exit);int phy_power_on (struct phy *phy) { -int ret; +int ret =0 ;if (!phy) -return 0 ; + goto out;if (phy->pwr) { ret =regulator_enable (phy->pwr);if (ret) -return ret; + goto out; } ret =phy_pm_runtime_get_sync (phy);if (ret <0 && ret != -ENOTSUPP ) -return ret; + goto err_pm_sync; + ret =0 ;/* Override possible ret == -ENOTSUPP */ mutex_lock (&phy->mutex);
@@ -296,19 +297,20 @@ int phy_power_on(struct phy *phy) ret = phy->ops->power_on (phy);if (ret <0 ) {dev_err (&phy->dev,"phy poweron failed --> %d\n" , ret); - goto out; + goto err_pwr_on; } } ++phy->power_count;mutex_unlock (&phy->mutex);return 0 ; -out: +err_pwr_on:mutex_unlock (&phy->mutex);phy_pm_runtime_put_sync (phy); +err_pm_sync:if (phy->pwr)regulator_disable (phy->pwr); - +out:return ret; }EXPORT_SYMBOL_GPL (phy_power_on);
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/phy-core-fix-wrong-err-handle-for-phy_power_on.patch