aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/uhci-q.c
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2006-01-19 10:46:27 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2006-03-20 17:49:58 -0500
commit6a8e87b23ff4a979bde5451a242466a4b3f9fe7d (patch)
tree3b3da90cdf42c363fbd6270c58dd21811b8e3004 /drivers/usb/host/uhci-q.c
parent1393adb2ebb00a2cd54b293cd7ee71e3376f4e9f (diff)
[PATCH] USB core and HCDs: don't put_device while atomic
This patch (as640) removes several put_device and the corresponding get_device calls from the USB core and HCDs. Some of the puts were done in atomic contexts, and none of them are needed since the core now guarantees that every endpoint will be disabled and every URB completed before a USB device is released. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Acked-by: David Brownell <david-b@pacbell.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/host/uhci-q.c')
-rw-r--r--drivers/usb/host/uhci-q.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/usb/host/uhci-q.c b/drivers/usb/host/uhci-q.c
index 5d2f9575ab4f..a06d84c19e13 100644
--- a/drivers/usb/host/uhci-q.c
+++ b/drivers/usb/host/uhci-q.c
@@ -179,7 +179,6 @@ static struct uhci_qh *uhci_alloc_qh(struct uhci_hcd *uhci,
179 qh->hep = hep; 179 qh->hep = hep;
180 qh->udev = udev; 180 qh->udev = udev;
181 hep->hcpriv = qh; 181 hep->hcpriv = qh;
182 usb_get_dev(udev);
183 182
184 } else { /* Skeleton QH */ 183 } else { /* Skeleton QH */
185 qh->state = QH_STATE_ACTIVE; 184 qh->state = QH_STATE_ACTIVE;
@@ -197,7 +196,6 @@ static void uhci_free_qh(struct uhci_hcd *uhci, struct uhci_qh *qh)
197 list_del(&qh->node); 196 list_del(&qh->node);
198 if (qh->udev) { 197 if (qh->udev) {
199 qh->hep->hcpriv = NULL; 198 qh->hep->hcpriv = NULL;
200 usb_put_dev(qh->udev);
201 uhci_free_td(uhci, qh->dummy_td); 199 uhci_free_td(uhci, qh->dummy_td);
202 } 200 }
203 dma_pool_free(uhci->qh_pool, qh, qh->dma_handle); 201 dma_pool_free(uhci->qh_pool, qh, qh->dma_handle);