diff options
Diffstat (limited to 'drivers/bluetooth/hci_vhci.c')
-rw-r--r-- | drivers/bluetooth/hci_vhci.c | 31 |
1 files changed, 0 insertions, 31 deletions
diff --git a/drivers/bluetooth/hci_vhci.c b/drivers/bluetooth/hci_vhci.c index 7ebdb1d30939..1df9dda2e377 100644 --- a/drivers/bluetooth/hci_vhci.c +++ b/drivers/bluetooth/hci_vhci.c | |||
@@ -51,14 +51,8 @@ struct vhci_data { | |||
51 | 51 | ||
52 | wait_queue_head_t read_wait; | 52 | wait_queue_head_t read_wait; |
53 | struct sk_buff_head readq; | 53 | struct sk_buff_head readq; |
54 | |||
55 | struct fasync_struct *fasync; | ||
56 | }; | 54 | }; |
57 | 55 | ||
58 | #define VHCI_FASYNC 0x0010 | ||
59 | |||
60 | static struct miscdevice vhci_miscdev; | ||
61 | |||
62 | static int vhci_open_dev(struct hci_dev *hdev) | 56 | static int vhci_open_dev(struct hci_dev *hdev) |
63 | { | 57 | { |
64 | set_bit(HCI_RUNNING, &hdev->flags); | 58 | set_bit(HCI_RUNNING, &hdev->flags); |
@@ -105,9 +99,6 @@ static int vhci_send_frame(struct sk_buff *skb) | |||
105 | memcpy(skb_push(skb, 1), &bt_cb(skb)->pkt_type, 1); | 99 | memcpy(skb_push(skb, 1), &bt_cb(skb)->pkt_type, 1); |
106 | skb_queue_tail(&data->readq, skb); | 100 | skb_queue_tail(&data->readq, skb); |
107 | 101 | ||
108 | if (data->flags & VHCI_FASYNC) | ||
109 | kill_fasync(&data->fasync, SIGIO, POLL_IN); | ||
110 | |||
111 | wake_up_interruptible(&data->read_wait); | 102 | wake_up_interruptible(&data->read_wait); |
112 | 103 | ||
113 | return 0; | 104 | return 0; |
@@ -293,35 +284,13 @@ static int vhci_release(struct inode *inode, struct file *file) | |||
293 | return 0; | 284 | return 0; |
294 | } | 285 | } |
295 | 286 | ||
296 | static int vhci_fasync(int fd, struct file *file, int on) | ||
297 | { | ||
298 | struct vhci_data *data = file->private_data; | ||
299 | int err = 0; | ||
300 | |||
301 | lock_kernel(); | ||
302 | err = fasync_helper(fd, file, on, &data->fasync); | ||
303 | if (err < 0) | ||
304 | goto out; | ||
305 | |||
306 | if (on) | ||
307 | data->flags |= VHCI_FASYNC; | ||
308 | else | ||
309 | data->flags &= ~VHCI_FASYNC; | ||
310 | |||
311 | out: | ||
312 | unlock_kernel(); | ||
313 | return err; | ||
314 | } | ||
315 | |||
316 | static const struct file_operations vhci_fops = { | 287 | static const struct file_operations vhci_fops = { |
317 | .owner = THIS_MODULE, | ||
318 | .read = vhci_read, | 288 | .read = vhci_read, |
319 | .write = vhci_write, | 289 | .write = vhci_write, |
320 | .poll = vhci_poll, | 290 | .poll = vhci_poll, |
321 | .ioctl = vhci_ioctl, | 291 | .ioctl = vhci_ioctl, |
322 | .open = vhci_open, | 292 | .open = vhci_open, |
323 | .release = vhci_release, | 293 | .release = vhci_release, |
324 | .fasync = vhci_fasync, | ||
325 | }; | 294 | }; |
326 | 295 | ||
327 | static struct miscdevice vhci_miscdev= { | 296 | static struct miscdevice vhci_miscdev= { |