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
2 changed files with 24 additions and 22 deletions
|
@ -437,28 +437,7 @@ int hci_inquiry(void __user *arg);
|
|||
|
||||
void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb);
|
||||
|
||||
/* Receive frame from HCI drivers */
|
||||
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_frame(struct sk_buff *skb);
|
||||
int hci_recv_fragment(struct hci_dev *hdev, int type, void *data, int count);
|
||||
|
||||
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);
|
||||
|
||||
/* 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 */
|
||||
#define __reassembly(hdev, type) ((hdev)->reassembly[(type) - 2])
|
||||
|
||||
|
|
Loading…
Reference in a new issue