summaryrefslogtreecommitdiff
path: root/mm/kmemleak.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2015-04-16 18:03:04 +1000
committerKishon Vijay Abraham I <kishon@ti.com>2015-06-01 16:08:24 +0530
commit56301df6bcaaed31e77b8c500ca1b437f46a3158 (patch)
tree52350b538831cacfc25efe2c396ead41faaa592e /mm/kmemleak.c
parent0d486806ffd0de672f151763b38c19c0a357bf56 (diff)
phy: twl4030-usb: make runtime pm more reliable.
A construct like: if (pm_runtime_suspended(twl->dev)) pm_runtime_get_sync(twl->dev); is against the spirit of the runtime_pm interface as it makes the internal refcounting useless. In this case it is also racy, particularly as 'put_autosuspend' is used to drop a reference. When that happens a timer is started and the device is runtime-suspended after the timeout. If the above code runs in this window, the device will not be found to be suspended so no pm_runtime reference is taken. When the timer expires the device will be suspended, which is against the intention of the code. So be more direct is taking and dropping references. If twl->linkstat is VBUS_VALID or ID_GROUND, then hold a pm_runtime reference, otherwise don't. Define "cable_present()" to test for this condition. Tested-by: Tony Lindgren <tony@atomide.com> Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Diffstat (limited to 'mm/kmemleak.c')
0 files changed, 0 insertions, 0 deletions