Re: [PATCH AUTOSEL 5.1 054/141] usb: gadget: storage: Remove warning message

Sasha Levin
2019-07-28T15:37:34Z

On Fri, Jul 19, 2019 at 05:27:31AM +0000, Thinh Nguyen wrote:
>Hi Sasha,
>
>Sasha Levin wrote:
>> From: EJ Hsu <ejh@nvidia.com>
>>
>> [ Upstream commit e70b3f5da00119e057b7faa557753fee7f786f17 ]
>>
>> 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.
>>
>> Acked-by: Alan Stern <stern@rowland.harvard.edu>
>> Signed-off-by: EJ Hsu <ejh@nvidia.com>
>> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
>> Signed-off-by: Sasha Levin <sashal@kernel.org>
>> ---
>> drivers/usb/gadget/function/f_mass_storage.c | 21 ++++++++++++++------
>> drivers/usb/gadget/function/storage_common.h | 1 +
>> 2 files changed, 16 insertions(+), 6 deletions(-)
>>
>> diff --git a/drivers/usb/gadget/function/f_mass_storage.c b/drivers/usb/gadget/function/f_mass_storage.c
>> index 043f97ad8f22..982c3e89eb0d 100644
>> --- a/drivers/usb/gadget/function/f_mass_storage.c
>> +++ b/drivers/usb/gadget/function/f_mass_storage.c
>>
>
>This patch may have issue. It was reverted upstream. Please don't queue
>to stable.

I've dropped it, thanks!

--
Thanks,
Sasha