aboutsummaryrefslogtreecommitdiff
path: root/drivers/usb/gadget/f_mass_storage.c
diff options
context:
space:
mode:
authorMark Brown <broonie@linaro.org>2013-07-22 11:16:31 +0100
committerMark Brown <broonie@linaro.org>2013-07-22 11:16:31 +0100
commitc04ee7fcbfba1471af90cf6407370efc779c1243 (patch)
treec0c37c40beb8bd197b7f424a67f12487960c4882 /drivers/usb/gadget/f_mass_storage.c
parente0749524b57019f480ad6c581431589d053e0cb0 (diff)
parent0f4a56e16d5fc9028b62ba529177a3109513e111 (diff)
Merge tag 'v3.10.2' into linux-linaro-lsklsk
This is the 3.10.2 stable release
Diffstat (limited to 'drivers/usb/gadget/f_mass_storage.c')
-rw-r--r--drivers/usb/gadget/f_mass_storage.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c
index 97666e8b1b9..c35a9ecc576 100644
--- a/drivers/usb/gadget/f_mass_storage.c
+++ b/drivers/usb/gadget/f_mass_storage.c
@@ -413,6 +413,7 @@ static int fsg_set_halt(struct fsg_dev *fsg, struct usb_ep *ep)
/* Caller must hold fsg->lock */
static void wakeup_thread(struct fsg_common *common)
{
+ smp_wmb(); /* ensure the write of bh->state is complete */
/* Tell the main thread that something has happened */
common->thread_wakeup_needed = 1;
if (common->thread_task)
@@ -632,6 +633,7 @@ static int sleep_thread(struct fsg_common *common)
}
__set_current_state(TASK_RUNNING);
common->thread_wakeup_needed = 0;
+ smp_rmb(); /* ensure the latest bh->state is visible */
return rc;
}