summaryrefslogtreecommitdiffstats
path: root/drivers/bluetooth
diff options
context:
space:
mode:
authorRussell King2009-12-04 15:59:47 +0100
committerRussell King2009-12-04 15:59:47 +0100
commit5cb2faa6ede7ada9cb2bffc832c4ce60f53d6834 (patch)
tree7b72b66081d042a41dc822575503133364857ce2 /drivers/bluetooth
parentARM: 5846/1: MAINTAINERS: Add arm Nomadik support (diff)
parentARM: I-cache: flush executable mappings in flush_cache_range() (diff)
downloadkernel-qcow2-linux-5cb2faa6ede7ada9cb2bffc832c4ce60f53d6834.tar.gz
kernel-qcow2-linux-5cb2faa6ede7ada9cb2bffc832c4ce60f53d6834.tar.xz
kernel-qcow2-linux-5cb2faa6ede7ada9cb2bffc832c4ce60f53d6834.zip
Merge branch 'pending-misc' (early part) into devel
Diffstat (limited to 'drivers/bluetooth')
-rw-r--r--drivers/bluetooth/btusb.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
index 7ba91aa3fe8b..44bc8bbabf54 100644
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
@@ -591,6 +591,7 @@ static int btusb_close(struct hci_dev *hdev)
return 0;
cancel_work_sync(&data->work);
+ cancel_work_sync(&data->waker);
clear_bit(BTUSB_ISOC_RUNNING, &data->flags);
clear_bit(BTUSB_BULK_RUNNING, &data->flags);
@@ -599,11 +600,13 @@ static int btusb_close(struct hci_dev *hdev)
btusb_stop_traffic(data);
err = usb_autopm_get_interface(data->intf);
if (err < 0)
- return 0;
+ goto failed;
data->intf->needs_remote_wakeup = 0;
usb_autopm_put_interface(data->intf);
+failed:
+ usb_scuttle_anchored_urbs(&data->deferred);
return 0;
}