Linux-i2c Archive on lore.kernel.org
 help / color / Atom feed
* [PATCH] i2c: omap: Fix rumtime PM imbalance on error
@ 2021-04-07  3:30 Dinghao Liu
  2021-04-07  6:10 ` Tony Lindgren
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Dinghao Liu @ 2021-04-07  3:30 UTC (permalink / raw)
  To: dinghao.liu, kjlu
  Cc: Tony Lindgren, Vignesh R, Aaro Koskinen, linux-omap, linux-i2c,
	linux-kernel

pm_runtime_get_sync() will increase the rumtime PM counter
even it returns an error. Thus a pairing decrement is needed
to prevent refcount leak. Fix this by replacing this API with
pm_runtime_resume_and_get(), which will not change the runtime
PM counter on error.

Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
---
 drivers/i2c/busses/i2c-omap.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 12ac4212aded..c9ee0875a79d 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -1404,7 +1404,7 @@ omap_i2c_probe(struct platform_device *pdev)
 	pm_runtime_set_autosuspend_delay(omap->dev, OMAP_I2C_PM_TIMEOUT);
 	pm_runtime_use_autosuspend(omap->dev);
 
-	r = pm_runtime_get_sync(omap->dev);
+	r = pm_runtime_resume_and_get(omap->dev);
 	if (r < 0)
 		goto err_free_mem;
 
-- 
2.17.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, back to index

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-07  3:30 [PATCH] i2c: omap: Fix rumtime PM imbalance on error Dinghao Liu
2021-04-07  6:10 ` Tony Lindgren
2021-04-07  6:19 ` Vignesh Raghavendra
2021-04-07  6:27   ` Tony Lindgren
2021-04-07  7:45     ` Vignesh Raghavendra
2021-04-07  9:59       ` Tony Lindgren
2021-04-14  7:54 ` Wolfram Sang

Linux-i2c Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-i2c/0 linux-i2c/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-i2c linux-i2c/ https://lore.kernel.org/linux-i2c \
		linux-i2c@vger.kernel.org
	public-inbox-index linux-i2c

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-i2c


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git