diff options
author | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2019-04-28 13:45:31 -0400 |
---|---|---|
committer | Steven Rostedt (VMware) <rostedt@goodmis.org> | 2019-04-28 13:45:31 -0400 |
commit | 344284eab562fa69e9c0c0f45c79d7227f5f2858 (patch) | |
tree | 05928aace65aef5390d34bb8e4752c646954c4db /drivers/usb/gadget | |
parent | d26b2fc5c0474086af79d33554a133247e8e69c3 (diff) | |
parent | 19bb613acb9ad8e57593cad5118acaee117cc303 (diff) |
Merge tag 'v4.19.37' into v4.19-rt
This is the 4.19.37 stable release
Conflicts:
include/linux/sched/mm.h
kernel/sched/fair.c
Diffstat (limited to 'drivers/usb/gadget')
-rw-r--r-- | drivers/usb/gadget/function/f_fs.c | 1 | ||||
-rw-r--r-- | drivers/usb/gadget/function/f_hid.c | 6 |
2 files changed, 4 insertions, 3 deletions
diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index 4d6741a54dd0..5e9269cd14fa 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -1008,6 +1008,7 @@ static ssize_t ffs_epfile_io(struct file *file, struct ffs_io_data *io_data) * condition with req->complete callback. */ usb_ep_dequeue(ep->ep, req); + wait_for_completion(&done); interrupted = ep->status < 0; } diff --git a/drivers/usb/gadget/function/f_hid.c b/drivers/usb/gadget/function/f_hid.c index 54e859dcb25c..492bb44153b3 100644 --- a/drivers/usb/gadget/function/f_hid.c +++ b/drivers/usb/gadget/function/f_hid.c @@ -391,20 +391,20 @@ try_again: req->complete = f_hidg_req_complete; req->context = hidg; + spin_unlock_irqrestore(&hidg->write_spinlock, flags); + status = usb_ep_queue(hidg->in_ep, req, GFP_ATOMIC); if (status < 0) { ERROR(hidg->func.config->cdev, "usb_ep_queue error on int endpoint %zd\n", status); - goto release_write_pending_unlocked; + goto release_write_pending; } else { status = count; } - spin_unlock_irqrestore(&hidg->write_spinlock, flags); return status; release_write_pending: spin_lock_irqsave(&hidg->write_spinlock, flags); -release_write_pending_unlocked: hidg->write_pending = 0; spin_unlock_irqrestore(&hidg->write_spinlock, flags); |