Hi, On Fri, 15 Mar 2013 07:39:02, "Felipe Balbi" <balbi@xxxxxx> wrote: > Hi, > > On Fri, Mar 15, 2013 at 09:25:28AM +0900, UCHINO Satoshi wrote: >> Without this memory barrier, the file-storage thread may fail to >> escape from the following while loop, because it may observe new >> common->thread_wakeup_needed and old bh->state which are updated by >> the callback functions. >> >> /* Wait for the CBW to arrive */ >> while (bh->state != BUF_STATE_FULL) { >> rc = sleep_thread(common); >> if (rc) >> return rc; >> } >> >> Cc: stable@xxxxxxxxxxxxxxx >> Signed-off-by: UCHINO Satoshi <satoshi.uchino@xxxxxxxxxxxxx> > > make sure to add a proper Cc list when sending patches. > scripts/get_maintainer.pl would have helped with that. Kepping patch > below so it's easier for Alan and Michal to read Thank you for taking care of the cc list. I did check MAINTAINERS scripts/get_maintainer.pl but just didn't know I should add Alan and Michal. >> --- >> drivers/usb/gadget/f_mass_storage.c | 2 ++ >> 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 fc5c16c..0b6d351 100644 >> --- a/drivers/usb/gadget/f_mass_storage.c >> +++ b/drivers/usb/gadget/f_mass_storage.c >> @@ -414,6 +414,7 @@ static int fsg_set_halt(struct fsg_dev *fsg, struct usb_ep *ep) >> static void wakeup_thread(struct fsg_common *common) >> { >> /* Tell the main thread that something has happened */ >> + smp_wmb(); >> common->thread_wakeup_needed = 1; >> if (common->thread_task) >> wake_up_process(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(); >> return rc; >> } >> >> -- >> 1.7.4.1 >> >> >> -- >> To unsubscribe from this list: send the line "unsubscribe linux-usb" in >> the body of a message to majordomo@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- > balbi - Uchino -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html