diff options
Diffstat (limited to 'drivers/bluetooth/bpa10x.c')
| -rw-r--r-- | drivers/bluetooth/bpa10x.c | 11 | 
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/bluetooth/bpa10x.c b/drivers/bluetooth/bpa10x.c index 2fe4a803134..8a319913c9a 100644 --- a/drivers/bluetooth/bpa10x.c +++ b/drivers/bluetooth/bpa10x.c @@ -37,7 +37,7 @@  #define VERSION "0.10" -static struct usb_device_id bpa10x_table[] = { +static const struct usb_device_id bpa10x_table[] = {  	/* Tektronix BPA 100/105 (Digianswer) */  	{ USB_DEVICE(0x08fd, 0x0002) }, @@ -129,8 +129,6 @@ static int bpa10x_recv(struct hci_dev *hdev, int queue, void *buf, int count)  				return -ENOMEM;  			} -			skb->dev = (void *) hdev; -  			data->rx_skb[queue] = skb;  			scb = (void *) skb->cb; @@ -155,7 +153,7 @@ static int bpa10x_recv(struct hci_dev *hdev, int queue, void *buf, int count)  			data->rx_skb[queue] = NULL;  			bt_cb(skb)->pkt_type = scb->type; -			hci_recv_frame(skb); +			hci_recv_frame(hdev, skb);  		}  		count -= len; buf += len; @@ -352,9 +350,8 @@ static int bpa10x_flush(struct hci_dev *hdev)  	return 0;  } -static int bpa10x_send_frame(struct sk_buff *skb) +static int bpa10x_send_frame(struct hci_dev *hdev, struct sk_buff *skb)  { -	struct hci_dev *hdev = (struct hci_dev *) skb->dev;  	struct bpa10x_data *data = hci_get_drvdata(hdev);  	struct usb_ctrlrequest *dr;  	struct urb *urb; @@ -366,6 +363,8 @@ static int bpa10x_send_frame(struct sk_buff *skb)  	if (!test_bit(HCI_RUNNING, &hdev->flags))  		return -EBUSY; +	skb->dev = (void *) hdev; +  	urb = usb_alloc_urb(0, GFP_ATOMIC);  	if (!urb)  		return -ENOMEM;  | 
