[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20190728153729.GG8637@sasha-vm>
Date: Sun, 28 Jul 2019 11:37:29 -0400
From: Sasha Levin <sashal@...nel.org>
To: Thinh Nguyen <Thinh.Nguyen@...opsys.com>
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"stable@...r.kernel.org" <stable@...r.kernel.org>,
EJ Hsu <ejh@...dia.com>,
Alan Stern <stern@...land.harvard.edu>,
Felipe Balbi <felipe.balbi@...ux.intel.com>,
"linux-usb@...r.kernel.org" <linux-usb@...r.kernel.org>
Subject: Re: [PATCH AUTOSEL 5.1 054/141] usb: gadget: storage: Remove warning
message
On Fri, Jul 19, 2019 at 05:27:31AM +0000, Thinh Nguyen wrote:
>Hi Sasha,
>
>Sasha Levin wrote:
>> From: EJ Hsu <ejh@...dia.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@...land.harvard.edu>
>> Signed-off-by: EJ Hsu <ejh@...dia.com>
>> Signed-off-by: Felipe Balbi <felipe.balbi@...ux.intel.com>
>> Signed-off-by: Sasha Levin <sashal@...nel.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
Powered by blists - more mailing lists