Skip to content

Commit cc97400

Browse files
holtmannJohan Hedberg
authored andcommitted
Bluetooth: Add missing checks for HCI_ISODATA_PKT packet type
The checks for HCI_ISODATA_PKT packet type are required in a few additional locations to allow sending/receiving of this new packet type. Signed-off-by: Marcel Holtmann <[email protected]> Signed-off-by: Johan Hedberg <[email protected]>
1 parent 268d363 commit cc97400

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

net/bluetooth/hci_core.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3565,7 +3565,8 @@ int hci_recv_frame(struct hci_dev *hdev, struct sk_buff *skb)
35653565

35663566
if (hci_skb_pkt_type(skb) != HCI_EVENT_PKT &&
35673567
hci_skb_pkt_type(skb) != HCI_ACLDATA_PKT &&
3568-
hci_skb_pkt_type(skb) != HCI_SCODATA_PKT) {
3568+
hci_skb_pkt_type(skb) != HCI_SCODATA_PKT &&
3569+
hci_skb_pkt_type(skb) != HCI_ISODATA_PKT) {
35693570
kfree_skb(skb);
35703571
return -EINVAL;
35713572
}
@@ -4543,6 +4544,7 @@ static void hci_rx_work(struct work_struct *work)
45434544
switch (hci_skb_pkt_type(skb)) {
45444545
case HCI_ACLDATA_PKT:
45454546
case HCI_SCODATA_PKT:
4547+
case HCI_ISODATA_PKT:
45464548
kfree_skb(skb);
45474549
continue;
45484550
}

net/bluetooth/hci_sock.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,8 @@ void hci_send_to_sock(struct hci_dev *hdev, struct sk_buff *skb)
211211
if (hci_skb_pkt_type(skb) != HCI_COMMAND_PKT &&
212212
hci_skb_pkt_type(skb) != HCI_EVENT_PKT &&
213213
hci_skb_pkt_type(skb) != HCI_ACLDATA_PKT &&
214-
hci_skb_pkt_type(skb) != HCI_SCODATA_PKT)
214+
hci_skb_pkt_type(skb) != HCI_SCODATA_PKT &&
215+
hci_skb_pkt_type(skb) != HCI_ISODATA_PKT)
215216
continue;
216217
if (is_filtered_packet(sk, skb))
217218
continue;
@@ -220,7 +221,8 @@ void hci_send_to_sock(struct hci_dev *hdev, struct sk_buff *skb)
220221
continue;
221222
if (hci_skb_pkt_type(skb) != HCI_EVENT_PKT &&
222223
hci_skb_pkt_type(skb) != HCI_ACLDATA_PKT &&
223-
hci_skb_pkt_type(skb) != HCI_SCODATA_PKT)
224+
hci_skb_pkt_type(skb) != HCI_SCODATA_PKT &&
225+
hci_skb_pkt_type(skb) != HCI_ISODATA_PKT)
224226
continue;
225227
} else {
226228
/* Don't send frame to other channel types */
@@ -1768,7 +1770,8 @@ static int hci_sock_sendmsg(struct socket *sock, struct msghdr *msg,
17681770
*/
17691771
if (hci_skb_pkt_type(skb) != HCI_COMMAND_PKT &&
17701772
hci_skb_pkt_type(skb) != HCI_ACLDATA_PKT &&
1771-
hci_skb_pkt_type(skb) != HCI_SCODATA_PKT) {
1773+
hci_skb_pkt_type(skb) != HCI_SCODATA_PKT &&
1774+
hci_skb_pkt_type(skb) != HCI_ISODATA_PKT) {
17721775
err = -EINVAL;
17731776
goto drop;
17741777
}
@@ -1812,7 +1815,8 @@ static int hci_sock_sendmsg(struct socket *sock, struct msghdr *msg,
18121815
}
18131816

18141817
if (hci_skb_pkt_type(skb) != HCI_ACLDATA_PKT &&
1815-
hci_skb_pkt_type(skb) != HCI_SCODATA_PKT) {
1818+
hci_skb_pkt_type(skb) != HCI_SCODATA_PKT &&
1819+
hci_skb_pkt_type(skb) != HCI_ISODATA_PKT) {
18161820
err = -EINVAL;
18171821
goto drop;
18181822
}

0 commit comments

Comments
 (0)