summaryrefslogtreecommitdiffstats
path: root/drivers/bluetooth/btusb.c
diff options
context:
space:
mode:
authorHaavard Skinnemoen <haavard.skinnemoen@atmel.com>2009-12-14 19:23:03 +0100
committerHaavard Skinnemoen <haavard.skinnemoen@atmel.com>2009-12-14 19:23:03 +0100
commit559300bc0ef7ccd541656f1189d38e7088389559 (patch)
treecd1682881ca4246e9c5a1e8632be4bdd9d9706c6 /drivers/bluetooth/btusb.c
parent5416bf33f92a4104dbcd6062bf377c8421ca3cfd (diff)
parent22763c5cf3690a681551162c15d34d935308c8d7 (diff)
downloadkernel-crypto-559300bc0ef7ccd541656f1189d38e7088389559.tar.gz
kernel-crypto-559300bc0ef7ccd541656f1189d38e7088389559.tar.xz
kernel-crypto-559300bc0ef7ccd541656f1189d38e7088389559.zip
Merge commit 'v2.6.32'
Conflicts: arch/avr32/mach-at32ap/include/mach/cpu.h
Diffstat (limited to 'drivers/bluetooth/btusb.c')
-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 7ba91aa3fe8..44bc8bbabf5 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;
}