@@ -3269,12 +3269,26 @@ static void hci_queue_acl(struct hci_chan *chan, struct sk_buff_head *queue,
32693269 }
32703270}
32713271
3272+ void hci_send_host (struct hci_dev * hdev , struct sk_buff * skb )
3273+ {
3274+ /* Mark as socket packet */
3275+ hci_skb_pkt_type (skb ) = HCI_HOST_PKT ;
3276+
3277+ /* Time stamp */
3278+ __net_timestamp (skb );
3279+
3280+ /* Send copy to monitor */
3281+ hci_send_to_monitor (hdev , skb );
3282+ }
3283+
32723284void hci_send_acl (struct hci_chan * chan , struct sk_buff * skb , __u16 flags )
32733285{
32743286 struct hci_dev * hdev = chan -> conn -> hdev ;
32753287
32763288 BT_DBG ("%s chan %p flags 0x%4.4x" , hdev -> name , chan , flags );
32773289
3290+ hci_send_host (hdev , skb );
3291+
32783292 hci_queue_acl (chan , & chan -> data_q , skb , flags );
32793293
32803294 queue_work (hdev -> workqueue , & hdev -> tx_work );
@@ -3288,6 +3302,8 @@ void hci_send_sco(struct hci_conn *conn, struct sk_buff *skb)
32883302
32893303 BT_DBG ("%s len %d" , hdev -> name , skb -> len );
32903304
3305+ hci_send_host (hdev , skb );
3306+
32913307 hdr .handle = cpu_to_le16 (conn -> handle );
32923308 hdr .dlen = skb -> len ;
32933309
@@ -3365,6 +3381,8 @@ void hci_send_iso(struct hci_conn *conn, struct sk_buff *skb)
33653381
33663382 BT_DBG ("%s len %d" , hdev -> name , skb -> len );
33673383
3384+ hci_send_host (hdev , skb );
3385+
33683386 hci_queue_iso (conn , & conn -> data_q , skb );
33693387
33703388 queue_work (hdev -> workqueue , & hdev -> tx_work );
0 commit comments