aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/core
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/core
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/core')
-rw-r--r--drivers/usb/core/hcd.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index a98d978d76e2..fbd938d4ea58 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1105,7 +1105,6 @@ static void urb_unlink (struct urb *urb)
1105 spin_lock_irqsave (&hcd_data_lock, flags); 1105 spin_lock_irqsave (&hcd_data_lock, flags);
1106 list_del_init (&urb->urb_list); 1106 list_del_init (&urb->urb_list);
1107 spin_unlock_irqrestore (&hcd_data_lock, flags); 1107 spin_unlock_irqrestore (&hcd_data_lock, flags);
1108 usb_put_dev (urb->dev);
1109} 1108}
1110 1109
1111 1110
@@ -1145,7 +1144,6 @@ static int hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
1145 case HC_STATE_RUNNING: 1144 case HC_STATE_RUNNING:
1146 case HC_STATE_RESUMING: 1145 case HC_STATE_RESUMING:
1147doit: 1146doit:
1148 usb_get_dev (urb->dev);
1149 list_add_tail (&urb->urb_list, &ep->urb_list); 1147 list_add_tail (&urb->urb_list, &ep->urb_list);
1150 status = 0; 1148 status = 0;
1151 break; 1149 break;