summaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/whci/hcd.c
diff options
context:
space:
mode:
authorJames Morris <jmorris@namei.org>2009-09-29 23:47:33 +0200
committerJames Morris <jmorris@namei.org>2009-09-29 23:47:33 +0200
commit1669b049db50fc7f1d4e694fb115a0f408c63fce (patch)
tree9b3b90b5cbff9b8f30ecf0b2a44896ce8bef0c20 /drivers/usb/host/whci/hcd.c
parentTPM: increase default TPM buffer (diff)
parentLinux 2.6.32-rc1 (diff)
downloadlinux-1669b049db50fc7f1d4e694fb115a0f408c63fce.tar.xz
linux-1669b049db50fc7f1d4e694fb115a0f408c63fce.zip
Merge branch 'master' into next
Diffstat (limited to 'drivers/usb/host/whci/hcd.c')
-rw-r--r--drivers/usb/host/whci/hcd.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/usb/host/whci/hcd.c b/drivers/usb/host/whci/hcd.c
index e019a5058ab8..687b622a1612 100644
--- a/drivers/usb/host/whci/hcd.c
+++ b/drivers/usb/host/whci/hcd.c
@@ -192,19 +192,23 @@ static void whc_endpoint_reset(struct usb_hcd *usb_hcd,
struct wusbhc *wusbhc = usb_hcd_to_wusbhc(usb_hcd);
struct whc *whc = wusbhc_to_whc(wusbhc);
struct whc_qset *qset;
+ unsigned long flags;
+
+ spin_lock_irqsave(&whc->lock, flags);
qset = ep->hcpriv;
if (qset) {
qset->remove = 1;
+ qset->reset = 1;
if (usb_endpoint_xfer_bulk(&ep->desc)
|| usb_endpoint_xfer_control(&ep->desc))
queue_work(whc->workqueue, &whc->async_work);
else
queue_work(whc->workqueue, &whc->periodic_work);
-
- qset_reset(whc, qset);
}
+
+ spin_unlock_irqrestore(&whc->lock, flags);
}