aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/ehci-sched.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/ehci-sched.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/ehci-sched.c')
-rw-r--r--drivers/usb/host/ehci-sched.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/usb/host/ehci-sched.c b/drivers/usb/host/ehci-sched.c
index 88419c6823a8..90d6900a37f4 100644
--- a/drivers/usb/host/ehci-sched.c
+++ b/drivers/usb/host/ehci-sched.c
@@ -1399,7 +1399,7 @@ itd_complete (
1399 */ 1399 */
1400 1400
1401 /* give urb back to the driver ... can be out-of-order */ 1401 /* give urb back to the driver ... can be out-of-order */
1402 dev = usb_get_dev (urb->dev); 1402 dev = urb->dev;
1403 ehci_urb_done (ehci, urb, regs); 1403 ehci_urb_done (ehci, urb, regs);
1404 urb = NULL; 1404 urb = NULL;
1405 1405
@@ -1418,7 +1418,6 @@ itd_complete (
1418 (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out"); 1418 (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out");
1419 } 1419 }
1420 iso_stream_put (ehci, stream); 1420 iso_stream_put (ehci, stream);
1421 usb_put_dev (dev);
1422 1421
1423 return 1; 1422 return 1;
1424} 1423}
@@ -1765,7 +1764,7 @@ sitd_complete (
1765 */ 1764 */
1766 1765
1767 /* give urb back to the driver */ 1766 /* give urb back to the driver */
1768 dev = usb_get_dev (urb->dev); 1767 dev = urb->dev;
1769 ehci_urb_done (ehci, urb, regs); 1768 ehci_urb_done (ehci, urb, regs);
1770 urb = NULL; 1769 urb = NULL;
1771 1770
@@ -1784,7 +1783,6 @@ sitd_complete (
1784 (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out"); 1783 (stream->bEndpointAddress & USB_DIR_IN) ? "in" : "out");
1785 } 1784 }
1786 iso_stream_put (ehci, stream); 1785 iso_stream_put (ehci, stream);
1787 usb_put_dev (dev);
1788 1786
1789 return 1; 1787 return 1;
1790} 1788}