Bluetooth: Turn hci_recv_frame into an exported function
For future simplification it is important that the hci_recv_frame function is no longer an inline function. So move it into the module itself and export it. Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
parent
7e21addcd0
commit
76bca88012
|
@ -437,28 +437,7 @@ int hci_inquiry(void __user *arg);
|
||||||
|
|
||||||
void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb);
|
void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb);
|
||||||
|
|
||||||
/* Receive frame from HCI drivers */
|
int hci_recv_frame(struct sk_buff *skb);
|
||||||
static inline int hci_recv_frame(struct sk_buff *skb)
|
|
||||||
{
|
|
||||||
struct hci_dev *hdev = (struct hci_dev *) skb->dev;
|
|
||||||
if (!hdev || (!test_bit(HCI_UP, &hdev->flags)
|
|
||||||
&& !test_bit(HCI_INIT, &hdev->flags))) {
|
|
||||||
kfree_skb(skb);
|
|
||||||
return -ENXIO;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Incomming skb */
|
|
||||||
bt_cb(skb)->incoming = 1;
|
|
||||||
|
|
||||||
/* Time stamp */
|
|
||||||
__net_timestamp(skb);
|
|
||||||
|
|
||||||
/* Queue frame for rx task */
|
|
||||||
skb_queue_tail(&hdev->rx_q, skb);
|
|
||||||
hci_sched_rx(hdev);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int hci_recv_fragment(struct hci_dev *hdev, int type, void *data, int count);
|
int hci_recv_fragment(struct hci_dev *hdev, int type, void *data, int count);
|
||||||
|
|
||||||
int hci_register_sysfs(struct hci_dev *hdev);
|
int hci_register_sysfs(struct hci_dev *hdev);
|
||||||
|
|
|
@ -987,6 +987,29 @@ int hci_resume_dev(struct hci_dev *hdev)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(hci_resume_dev);
|
EXPORT_SYMBOL(hci_resume_dev);
|
||||||
|
|
||||||
|
/* Receive frame from HCI drivers */
|
||||||
|
int hci_recv_frame(struct sk_buff *skb)
|
||||||
|
{
|
||||||
|
struct hci_dev *hdev = (struct hci_dev *) skb->dev;
|
||||||
|
if (!hdev || (!test_bit(HCI_UP, &hdev->flags)
|
||||||
|
&& !test_bit(HCI_INIT, &hdev->flags))) {
|
||||||
|
kfree_skb(skb);
|
||||||
|
return -ENXIO;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Incomming skb */
|
||||||
|
bt_cb(skb)->incoming = 1;
|
||||||
|
|
||||||
|
/* Time stamp */
|
||||||
|
__net_timestamp(skb);
|
||||||
|
|
||||||
|
/* Queue frame for rx task */
|
||||||
|
skb_queue_tail(&hdev->rx_q, skb);
|
||||||
|
hci_sched_rx(hdev);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(hci_recv_frame);
|
||||||
|
|
||||||
/* Receive packet type fragment */
|
/* Receive packet type fragment */
|
||||||
#define __reassembly(hdev, type) ((hdev)->reassembly[(type) - 2])
|
#define __reassembly(hdev, type) ((hdev)->reassembly[(type) - 2])
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue