Message ID | 1384515645-8696-1-git-send-email-ulf.hansson@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On Friday, November 15, 2013 12:40:44 PM Ulf Hansson wrote: > If a device prepare callback for some reason would fail, the PM core > prevented the device from going inactive forever. > > In this case, to reverse the pm_runtime_get_noresume() we invokes the > asyncronous pm_runtime_put(), thus restoring the usage count. > > Cc: Kevin Hilman <khilman@linaro.org> > Cc: Alan Stern <stern@rowland.harvard.edu> > Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> This should be in linux-next already. Thanks! > --- > drivers/base/power/main.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c > index ee039af..2a1b06a 100644 > --- a/drivers/base/power/main.c > +++ b/drivers/base/power/main.c > @@ -1350,6 +1350,9 @@ static int device_prepare(struct device *dev, pm_message_t state) > > device_unlock(dev); > > + if (error) > + pm_runtime_put(dev); > + > return error; > } > >
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c index ee039af..2a1b06a 100644 --- a/drivers/base/power/main.c +++ b/drivers/base/power/main.c @@ -1350,6 +1350,9 @@ static int device_prepare(struct device *dev, pm_message_t state) device_unlock(dev); + if (error) + pm_runtime_put(dev); + return error; }
If a device prepare callback for some reason would fail, the PM core prevented the device from going inactive forever. In this case, to reverse the pm_runtime_get_noresume() we invokes the asyncronous pm_runtime_put(), thus restoring the usage count. Cc: Kevin Hilman <khilman@linaro.org> Cc: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> --- drivers/base/power/main.c | 3 +++ 1 file changed, 3 insertions(+)