summaryrefslogtreecommitdiffstats
path: root/drivers/memstick
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2016-09-26 15:45:41 -0700
committerBen Hutchings <ben@decadent.org.uk>2017-02-23 03:54:16 +0000
commitf276b44159ebfc6d50c8c0088a6275543c5346d7 (patch)
tree28de9631f8e07203759e63bf8729c50b0a806f92 /drivers/memstick
parentf099ba5897715dc06b7ba2e20aeba893df4354e7 (diff)
downloadlinux-stable-f276b44159ebfc6d50c8c0088a6275543c5346d7.tar.gz
linux-stable-f276b44159ebfc6d50c8c0088a6275543c5346d7.tar.bz2
linux-stable-f276b44159ebfc6d50c8c0088a6275543c5346d7.zip
memstick: rtsx_usb_ms: Runtime resume the device when polling for cards
commit 796aa46adf1d90eab36ae06a42e6d3f10b28a75c upstream. Accesses to the rtsx usb device, which is the parent of the rtsx memstick device, must not be done unless it's runtime resumed. Therefore when the rtsx_usb_ms driver polls for inserted memstick cards, let's add pm_runtime_get|put*() to make sure accesses is done when the rtsx usb device is runtime resumed. Reported-by: Ritesh Raj Sarraf <rrs@researchut.com> Tested-by: Ritesh Raj Sarraf <rrs@researchut.com> Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'drivers/memstick')
-rw-r--r--drivers/memstick/host/rtsx_usb_ms.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/memstick/host/rtsx_usb_ms.c b/drivers/memstick/host/rtsx_usb_ms.c
index a7282b7d4de8..f90e2133bbd2 100644
--- a/drivers/memstick/host/rtsx_usb_ms.c
+++ b/drivers/memstick/host/rtsx_usb_ms.c
@@ -681,6 +681,7 @@ static int rtsx_usb_detect_ms_card(void *__host)
int err;
for (;;) {
+ pm_runtime_get_sync(ms_dev(host));
mutex_lock(&ucr->dev_mutex);
/* Check pending MS card changes */
@@ -703,6 +704,7 @@ static int rtsx_usb_detect_ms_card(void *__host)
}
poll_again:
+ pm_runtime_put(ms_dev(host));
if (host->eject)
break;