Message ID | 2238ea52423a83118ab724a96e8f0691ec4ada0b.1490387086.git.shuahkh@osg.samsung.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Hi, Shuah Khan <shuahkh@osg.samsung.com> writes: > dwc3_probe() does pm_runtime_put_sync() in its err1 handling when > pm_runtime_get_sync() fails. Move the pm_runtime_put_sync() under > err2 instead as it is used in error paths after pm_runtime_get_sync() > succeeds. there's nothing wrong with current code. Read the docs. Even if pm_runtime_get*() fails, you still need to decrement the usage counter. pm_runtime_put*() is one way of achieving so.
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 56f1367..0fc7bef 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -1162,9 +1162,9 @@ static int dwc3_probe(struct platform_device *pdev) err2: pm_runtime_allow(&pdev->dev); + pm_runtime_put_sync(&pdev->dev); err1: - pm_runtime_put_sync(&pdev->dev); pm_runtime_disable(&pdev->dev); err0:
dwc3_probe() does pm_runtime_put_sync() in its err1 handling when pm_runtime_get_sync() fails. Move the pm_runtime_put_sync() under err2 instead as it is used in error paths after pm_runtime_get_sync() succeeds. Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com> --- drivers/usb/dwc3/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)