diff options
-rw-r--r-- | include/net/bluetooth/hci_core.h | 23 | ||||
-rw-r--r-- | net/bluetooth/hci_core.c | 23 |
2 files changed, 24 insertions, 22 deletions
diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h index 7b640aeddb64..8460f2283089 100644 --- a/include/net/bluetooth/hci_core.h +++ b/include/net/bluetooth/hci_core.h | |||
@@ -437,28 +437,7 @@ int hci_inquiry(void __user *arg); | |||
437 | 437 | ||
438 | void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb); | 438 | void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb); |
439 | 439 | ||
440 | /* Receive frame from HCI drivers */ | 440 | int hci_recv_frame(struct sk_buff *skb); |
441 | static inline int hci_recv_frame(struct sk_buff *skb) | ||
442 | { | ||
443 | struct hci_dev *hdev = (struct hci_dev *) skb->dev; | ||
444 | if (!hdev || (!test_bit(HCI_UP, &hdev->flags) | ||
445 | && !test_bit(HCI_INIT, &hdev->flags))) { | ||
446 | kfree_skb(skb); | ||
447 | return -ENXIO; | ||
448 | } | ||
449 | |||
450 | /* Incomming skb */ | ||
451 | bt_cb(skb)->incoming = 1; | ||
452 | |||
453 | /* Time stamp */ | ||
454 | __net_timestamp(skb); | ||
455 | |||
456 | /* Queue frame for rx task */ | ||
457 | skb_queue_tail(&hdev->rx_q, skb); | ||
458 | hci_sched_rx(hdev); | ||
459 | return 0; | ||
460 | } | ||
461 | |||
462 | int hci_recv_fragment(struct hci_dev *hdev, int type, void *data, int count); | 441 | int hci_recv_fragment(struct hci_dev *hdev, int type, void *data, int count); |
463 | 442 | ||
464 | int hci_register_sysfs(struct hci_dev *hdev); | 443 | int hci_register_sysfs(struct hci_dev *hdev); |
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index e1da8f68759c..3fc90e543ec1 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c | |||
@@ -987,6 +987,29 @@ int hci_resume_dev(struct hci_dev *hdev) | |||
987 | } | 987 | } |
988 | EXPORT_SYMBOL(hci_resume_dev); | 988 | EXPORT_SYMBOL(hci_resume_dev); |
989 | 989 | ||
990 | /* Receive frame from HCI drivers */ | ||
991 | int hci_recv_frame(struct sk_buff *skb) | ||
992 | { | ||
993 | struct hci_dev *hdev = (struct hci_dev *) skb->dev; | ||
994 | if (!hdev || (!test_bit(HCI_UP, &hdev->flags) | ||
995 | && !test_bit(HCI_INIT, &hdev->flags))) { | ||
996 | kfree_skb(skb); | ||
997 | return -ENXIO; | ||
998 | } | ||
999 | |||
1000 | /* Incomming skb */ | ||
1001 | bt_cb(skb)->incoming = 1; | ||
1002 | |||
1003 | /* Time stamp */ | ||
1004 | __net_timestamp(skb); | ||
1005 | |||
1006 | /* Queue frame for rx task */ | ||
1007 | skb_queue_tail(&hdev->rx_q, skb); | ||
1008 | hci_sched_rx(hdev); | ||
1009 | return 0; | ||
1010 | } | ||
1011 | EXPORT_SYMBOL(hci_recv_frame); | ||
1012 | |||
990 | /* Receive packet type fragment */ | 1013 | /* Receive packet type fragment */ |
991 | #define __reassembly(hdev, type) ((hdev)->reassembly[(type) - 2]) | 1014 | #define __reassembly(hdev, type) ((hdev)->reassembly[(type) - 2]) |
992 | 1015 | ||