Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 110030
b: refs/heads/master
c: 5fbcd26
h: refs/heads/master
v: v3
  • Loading branch information
Marcel Holtmann committed Sep 22, 2008
1 parent abe9f4d commit 803300d
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: e8c3c3d22b340a406a9aab1b7a9f436636c3de9d
refs/heads/master: 5fbcd260c2c52f78cd699f65e9c7af2e60b5380c
19 changes: 15 additions & 4 deletions trunk/drivers/bluetooth/btusb.c
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ static struct usb_device_id blacklist_table[] = {
struct btusb_data {
struct hci_dev *hdev;
struct usb_device *udev;
struct usb_interface *intf;
struct usb_interface *isoc;

spinlock_t lock;
Expand Down Expand Up @@ -826,6 +827,7 @@ static int btusb_probe(struct usb_interface *intf,
}

data->udev = interface_to_usbdev(intf);
data->intf = intf;

spin_lock_init(&data->lock);

Expand Down Expand Up @@ -894,7 +896,7 @@ static int btusb_probe(struct usb_interface *intf,

if (data->isoc) {
err = usb_driver_claim_interface(&btusb_driver,
data->isoc, NULL);
data->isoc, data);
if (err < 0) {
hci_free_dev(hdev);
kfree(data);
Expand Down Expand Up @@ -926,13 +928,22 @@ static void btusb_disconnect(struct usb_interface *intf)

hdev = data->hdev;

if (data->isoc)
usb_driver_release_interface(&btusb_driver, data->isoc);
__hci_dev_hold(hdev);

usb_set_intfdata(intf, NULL);
usb_set_intfdata(data->intf, NULL);

if (data->isoc)
usb_set_intfdata(data->isoc, NULL);

hci_unregister_dev(hdev);

if (intf == data->isoc)
usb_driver_release_interface(&btusb_driver, data->intf);
else if (data->isoc)
usb_driver_release_interface(&btusb_driver, data->isoc);

__hci_dev_put(hdev);

hci_free_dev(hdev);
}

Expand Down

0 comments on commit 803300d

Please sign in to comment.