public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] usb: musb: fix pm_runtime mismatch
@ 2011-12-15 22:42 Felipe Contreras
  2011-12-15 23:01 ` Felipe Balbi
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Felipe Contreras @ 2011-12-15 22:42 UTC (permalink / raw)
  To: linux-usb
  Cc: linux-kernel, Felipe Balbi, Greg Kroah-Hartman, Jarkko Nikula,
	Felipe Contreras, stable

In musb_init_controller() there's a pm_runtime_put(), but there's no
pm_runtime_get(), which creates a mismatch that causes the driver to
sleep when it shouldn't.

This was introduced in 7acc619, but it wasn't triggered until 18a2689
was merged to Linus' branch at point 6899608.

However, it seems most of the time this is used in a way that keeps the
counter above 0, so nobody noticed. Also, it seems to depend on the
configuration used.

I found the problem by loading isp1704_charger before any usb gadgets:
http://article.gmane.org/gmane.linux.kernel/1226122

All versions after 2.6.39 are affected.

Cc: stable@vger.kernel.org
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 drivers/usb/musb/musb_core.c |    2 --
 1 files changed, 0 insertions(+), 2 deletions(-)

diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
index b63ab15..920f04e 100644
--- a/drivers/usb/musb/musb_core.c
+++ b/drivers/usb/musb/musb_core.c
@@ -2012,8 +2012,6 @@ musb_init_controller(struct device *dev, int nIrq, void __iomem *ctrl)
 	if (status < 0)
 		goto fail3;
 
-	pm_runtime_put(musb->controller);
-
 	status = musb_init_debugfs(musb);
 	if (status < 0)
 		goto fail4;
-- 
1.7.8.rc1.14.g248db


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

end of thread, other threads:[~2011-12-19 19:39 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-12-15 22:42 [PATCH] usb: musb: fix pm_runtime mismatch Felipe Contreras
2011-12-15 23:01 ` Felipe Balbi
2011-12-15 23:31   ` Felipe Contreras
2011-12-15 23:50     ` Felipe Balbi
2011-12-16  1:13       ` Felipe Contreras
2011-12-16  1:38         ` Felipe Balbi
2011-12-19 19:39           ` Felipe Contreras
2011-12-15 23:02 ` Greg KH
2011-12-15 23:11   ` Greg KH
2011-12-15 23:52     ` Felipe Balbi
2011-12-16 10:46 ` Sergei Shtylyov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox