On 2016/10/4 8:07, Michal Nazarewicz wrote:
> ffs_func_eps_disable is called from atomic context so it cannot sleep
> thus cannot grab a mutex.  Change the handling of epfile->read_buffer
> to use non-sleeping synchronisation method.
> 
> Reported-by: Chen Yu <cheny...@huawei.com>
> Signed-off-by: Michał Nazarewicz <min...@mina86.com>
> Fixes: 9353afbbfa7b ("buffer data from ‘oversized’ OUT requests")
> Tested-by: Chen Yu <cheny...@huawei.com>
> ---
>  drivers/usb/gadget/function/f_fs.c | 109 
> +++++++++++++++++++++++++++++++------
>  1 file changed, 93 insertions(+), 16 deletions(-)
> 
> Compared to the previous version:
> • this one has a bit more comments (I feel like it’s a bad sign that
>   this needs so much documentation);
> • ffs_epfile_realese sets read_buffer to READ_BUFFER_DROP (which
>   doesn’t matter since on entry __ffs_epfile_read_buffered behaves
>   the same way when read_buffer is NULL or READ_BUFFER_DROP); and
> • __ffs_epfile_read_data will drop the temporary data if read_buffer
>   is READ_BUFFER_DROP (which may happen if ep is disabled between ep
>   request finishes and data is copied to user space).
> 
> Chen, John, if you could test this version as well, that would be
> swell.
> 

for both patches:

Tested-by: Chen Yu <cheny...@huawei.com>

thanks again!
Chen Yu

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to