patch "phy: core: fix wrong err handle for phy_power_on" added to usb-linus
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 my usb git tree which can be found at
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git
in the usb-linus branch.
The patch will show up in the next release of the linux-next tree (usually sometime within the next 24 hours during the week.)
The patch will hopefully also be merged in Linus's tree for the next -rc kernel release.
If you have any questions about this process, please let me know.
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
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);
Signature · 1 line
2.7.1