On Wed, May 08, 2019 at 11:24:00AM +0800, EJ Hsu wrote: > This change is to fix below warning message in following scenario: > usb_composite_setup_continue: Unexpected call > > When system tried to enter suspend, the fsg_disable() will be called to > disable fsg driver and send a signal to fsg_main_thread. However, at > this point, the fsg_main_thread has already been frozen and can not > respond to this signal. So, this signal will be pended until > fsg_main_thread wakes up. > > Once system resumes from suspend, fsg_main_thread will detect a signal > pended and do some corresponding action (in handle_exception()). Then, > host will send some setup requests (get descriptor, set configuration...) > to UDC driver trying to enumerate this device. During the handling of "set > configuration" request, it will try to sync up with fsg_main_thread by > sending a signal (which is the same as the signal sent by fsg_disable) > to it. In a similar manner, once the fsg_main_thread receives this > signal, it will call handle_exception() to handle the request. > > However, if the fsg_main_thread wakes up from suspend a little late and > "set configuration" request from Host arrives a little earlier, > fsg_main_thread might come across the request from "set configuration" > when it handles the signal from fsg_disable(). In this case, it will > handle this request as well. So, when fsg_main_thread tries to handle > the signal sent from "set configuration" later, there will nothing left > to do and warning message "Unexpected call" is printed. > > Signed-off-by: EJ Hsu <ejh@xxxxxxxxxx> > --- > drivers/usb/gadget/function/f_mass_storage.c | 18 +++++++++++++++--- > drivers/usb/gadget/function/storage_common.h | 4 ++++ > 2 files changed, 19 insertions(+), 3 deletions(-) > > diff --git a/drivers/usb/gadget/function/f_mass_storage.c b/drivers/usb/gadget/function/f_mass_storage.c > index 043f97a..813083f 100644 > --- a/drivers/usb/gadget/function/f_mass_storage.c > +++ b/drivers/usb/gadget/function/f_mass_storage.c > @@ -4,6 +4,7 @@ > * > * Copyright (C) 2003-2008 Alan Stern > * Copyright (C) 2009 Samsung Electronics > + * Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved. > * Author: Michal Nazarewicz <mina86@xxxxxxxxxx> If this is the only nvidia contribution to this file, then this new line is not warrented, sorry. Please contact your corporate lawyers to understand why, I'm sure they will be glad to have you learn all you ever wanted to know about copyright law :) thanks, greg k-h