diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2016-01-12 05:01:12 -0500 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2016-01-12 05:01:12 -0500 |
commit | 1f16f116b01c110db20ab808562c8b8bc3ee3d6e (patch) | |
tree | 44db563f64cf5f8d62af8f99a61e2b248c44ea3a /drivers/usb/renesas_usbhs/mod_gadget.c | |
parent | 03724ac3d48f8f0e3caf1d30fa134f8fd96c94e2 (diff) | |
parent | f9eccf24615672896dc13251410c3f2f33a14f95 (diff) |
Merge branches 'clockevents/4.4-fixes' and 'clockevents/4.5-fixes' of http://git.linaro.org/people/daniel.lezcano/linux into timers/urgent
Pull in fixes from Daniel Lezcano:
- Fix the vt8500 timer leading to a system lock up when dealing with too
small delta (Roman Volkov)
- Select the CLKSRC_MMIO when the fsl_ftm_timer is enabled with COMPILE_TEST
(Daniel Lezcano)
- Prevent to compile timers using the 'iomem' API when the architecture has
not HAS_IOMEM set (Richard Weinberger)
Diffstat (limited to 'drivers/usb/renesas_usbhs/mod_gadget.c')
-rw-r--r-- | drivers/usb/renesas_usbhs/mod_gadget.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c index de4f97d84a82..8f7a78e70975 100644 --- a/drivers/usb/renesas_usbhs/mod_gadget.c +++ b/drivers/usb/renesas_usbhs/mod_gadget.c | |||
@@ -131,7 +131,8 @@ static void __usbhsg_queue_pop(struct usbhsg_uep *uep, | |||
131 | struct device *dev = usbhsg_gpriv_to_dev(gpriv); | 131 | struct device *dev = usbhsg_gpriv_to_dev(gpriv); |
132 | struct usbhs_priv *priv = usbhsg_gpriv_to_priv(gpriv); | 132 | struct usbhs_priv *priv = usbhsg_gpriv_to_priv(gpriv); |
133 | 133 | ||
134 | dev_dbg(dev, "pipe %d : queue pop\n", usbhs_pipe_number(pipe)); | 134 | if (pipe) |
135 | dev_dbg(dev, "pipe %d : queue pop\n", usbhs_pipe_number(pipe)); | ||
135 | 136 | ||
136 | ureq->req.status = status; | 137 | ureq->req.status = status; |
137 | spin_unlock(usbhs_priv_to_lock(priv)); | 138 | spin_unlock(usbhs_priv_to_lock(priv)); |
@@ -685,7 +686,13 @@ static int usbhsg_ep_dequeue(struct usb_ep *ep, struct usb_request *req) | |||
685 | struct usbhsg_request *ureq = usbhsg_req_to_ureq(req); | 686 | struct usbhsg_request *ureq = usbhsg_req_to_ureq(req); |
686 | struct usbhs_pipe *pipe = usbhsg_uep_to_pipe(uep); | 687 | struct usbhs_pipe *pipe = usbhsg_uep_to_pipe(uep); |
687 | 688 | ||
688 | usbhs_pkt_pop(pipe, usbhsg_ureq_to_pkt(ureq)); | 689 | if (pipe) |
690 | usbhs_pkt_pop(pipe, usbhsg_ureq_to_pkt(ureq)); | ||
691 | |||
692 | /* | ||
693 | * To dequeue a request, this driver should call the usbhsg_queue_pop() | ||
694 | * even if the pipe is NULL. | ||
695 | */ | ||
689 | usbhsg_queue_pop(uep, ureq, -ECONNRESET); | 696 | usbhsg_queue_pop(uep, ureq, -ECONNRESET); |
690 | 697 | ||
691 | return 0; | 698 | return 0; |