aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorPaul Bolle <pebolle@tiscali.nl>2011-08-09 11:16:28 -0400
committerGustavo F. Padovan <padovan@profusion.mobi>2011-08-11 18:50:25 -0400
commit4935f1c164ac528dff3538f97953b385ba500710 (patch)
tree28ddbe9ec01367a7c66c4db39ae18f2af9a6f186 /drivers
parent8475e2336cf80ba6e7b27715b4b3214d73c211ab (diff)
Bluetooth: btusb: be quiet on device disconnect
Disabling the bluetooth usb device embedded in (some) ThinkPads tends to lead to errors like these: btusb_bulk_complete: hci0 urb ffff88011b9bfd68 failed to resubmit (19) btusb_intr_complete: hci0 urb ffff88011b46a318 failed to resubmit (19) btusb_bulk_complete: hci0 urb ffff88011b46a000 failed to resubmit (19) That is because usb_disconnect() doesn't "quiesces" pending urbs. Disconnecting a device is a normal thing to happen so it's no big deal that usb_submit_urb() returns -ENODEV. The simplest way to get rid of these errors is to stop treating that return as an error. Trivial, actually. While we're at it, add comments to be explicit about the reasons we're not complaining about -EPERM and -ENODEV. Signed-off-by: Paul Bolle <pebolle@tiscali.nl> Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/bluetooth/btusb.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 91d13a9e8c6..9e4448efb10 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -256,7 +256,9 @@ static void btusb_intr_complete(struct urb *urb)
256 256
257 err = usb_submit_urb(urb, GFP_ATOMIC); 257 err = usb_submit_urb(urb, GFP_ATOMIC);
258 if (err < 0) { 258 if (err < 0) {
259 if (err != -EPERM) 259 /* -EPERM: urb is being killed;
260 * -ENODEV: device got disconnected */
261 if (err != -EPERM && err != -ENODEV)
260 BT_ERR("%s urb %p failed to resubmit (%d)", 262 BT_ERR("%s urb %p failed to resubmit (%d)",
261 hdev->name, urb, -err); 263 hdev->name, urb, -err);
262 usb_unanchor_urb(urb); 264 usb_unanchor_urb(urb);
@@ -341,7 +343,9 @@ static void btusb_bulk_complete(struct urb *urb)
341 343
342 err = usb_submit_urb(urb, GFP_ATOMIC); 344 err = usb_submit_urb(urb, GFP_ATOMIC);
343 if (err < 0) { 345 if (err < 0) {
344 if (err != -EPERM) 346 /* -EPERM: urb is being killed;
347 * -ENODEV: device got disconnected */
348 if (err != -EPERM && err != -ENODEV)
345 BT_ERR("%s urb %p failed to resubmit (%d)", 349 BT_ERR("%s urb %p failed to resubmit (%d)",
346 hdev->name, urb, -err); 350 hdev->name, urb, -err);
347 usb_unanchor_urb(urb); 351 usb_unanchor_urb(urb);
@@ -431,7 +435,9 @@ static void btusb_isoc_complete(struct urb *urb)
431 435
432 err = usb_submit_urb(urb, GFP_ATOMIC); 436 err = usb_submit_urb(urb, GFP_ATOMIC);
433 if (err < 0) { 437 if (err < 0) {
434 if (err != -EPERM) 438 /* -EPERM: urb is being killed;
439 * -ENODEV: device got disconnected */
440 if (err != -EPERM && err != -ENODEV)
435 BT_ERR("%s urb %p failed to resubmit (%d)", 441 BT_ERR("%s urb %p failed to resubmit (%d)",
436 hdev->name, urb, -err); 442 hdev->name, urb, -err);
437 usb_unanchor_urb(urb); 443 usb_unanchor_urb(urb);