aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2016-09-26 18:45:41 -0400
committerUlf Hansson <ulf.hansson@linaro.org>2016-10-17 09:43:04 -0400
commit796aa46adf1d90eab36ae06a42e6d3f10b28a75c (patch)
tree911f0f6a073f4812edbe3e3208f52b329e3d690d
parent4f48aa7a11bfed9502a7c85a5b68cd40ea827f73 (diff)
memstick: rtsx_usb_ms: Runtime resume the device when polling for cards
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> Cc: <stable@vger.kernel.org> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
-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 d34bc3530385..1b994897f0ff 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)
681 int err; 681 int err;
682 682
683 for (;;) { 683 for (;;) {
684 pm_runtime_get_sync(ms_dev(host));
684 mutex_lock(&ucr->dev_mutex); 685 mutex_lock(&ucr->dev_mutex);
685 686
686 /* Check pending MS card changes */ 687 /* Check pending MS card changes */
@@ -703,6 +704,7 @@ static int rtsx_usb_detect_ms_card(void *__host)
703 } 704 }
704 705
705poll_again: 706poll_again:
707 pm_runtime_put(ms_dev(host));
706 if (host->eject) 708 if (host->eject)
707 break; 709 break;
708 710