Patch "iio: gyro: fxa21002c: Balance runtime pm + use pm_runtime_resume_and_get()." has been added to the 5.13-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    iio: gyro: fxa21002c: Balance runtime pm + use pm_runtime_resume_and_get().

to the 5.13-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:
     iio-gyro-fxa21002c-balance-runtime-pm-use-pm_runtime.patch
and it can be found in the queue-5.13 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit d19e7117c184995a6357ee48a1166a00a4bf6fab
Author: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
Date:   Sun May 9 12:33:27 2021 +0100

    iio: gyro: fxa21002c: Balance runtime pm + use pm_runtime_resume_and_get().
    
    [ Upstream commit 41120ebbb1eb5e9dec93320e259d5b2c93226073 ]
    
    In both the probe() error path and remove() pm_runtime_put_noidle()
    is called which will decrement the runtime pm reference count.
    However, there is no matching function to have raised the reference count.
    Not this isn't a fix as the runtime pm core will stop the reference count
    going negative anyway.
    
    An alternative would have been to raise the count in these paths, but
    it is not clear why that would be necessary.
    
    Whilst we are here replace some boilerplate with pm_runtime_resume_and_get()
    Found using coccicheck script under review at:
    https://lore.kernel.org/lkml/20210427141946.2478411-1-Julia.Lawall@xxxxxxxx/
    
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>
    Reviewed-by: Rui Miguel Silva <rui.silva@xxxxxxxxxx>
    Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx>
    Link: https://lore.kernel.org/r/20210509113354.660190-2-jic23@xxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/iio/gyro/fxas21002c_core.c b/drivers/iio/gyro/fxas21002c_core.c
index 645461c70454..6a85f231fd57 100644
--- a/drivers/iio/gyro/fxas21002c_core.c
+++ b/drivers/iio/gyro/fxas21002c_core.c
@@ -366,14 +366,7 @@ out_unlock:
 
 static int  fxas21002c_pm_get(struct fxas21002c_data *data)
 {
-	struct device *dev = regmap_get_device(data->regmap);
-	int ret;
-
-	ret = pm_runtime_get_sync(dev);
-	if (ret < 0)
-		pm_runtime_put_noidle(dev);
-
-	return ret;
+	return pm_runtime_resume_and_get(regmap_get_device(data->regmap));
 }
 
 static int  fxas21002c_pm_put(struct fxas21002c_data *data)
@@ -1004,7 +997,6 @@ int fxas21002c_core_probe(struct device *dev, struct regmap *regmap, int irq,
 pm_disable:
 	pm_runtime_disable(dev);
 	pm_runtime_set_suspended(dev);
-	pm_runtime_put_noidle(dev);
 
 	return ret;
 }
@@ -1018,7 +1010,6 @@ void fxas21002c_core_remove(struct device *dev)
 
 	pm_runtime_disable(dev);
 	pm_runtime_set_suspended(dev);
-	pm_runtime_put_noidle(dev);
 }
 EXPORT_SYMBOL_GPL(fxas21002c_core_remove);
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux