diff --git a/subsys/bluetooth/host/hci_core.c b/subsys/bluetooth/host/hci_core.c index 0446860c0cf..3a1df20a475 100644 --- a/subsys/bluetooth/host/hci_core.c +++ b/subsys/bluetooth/host/hci_core.c @@ -598,8 +598,6 @@ static void hci_num_completed_packets(struct net_buf *buf) while (count--) { sys_snode_t *node; - k_sem_give(bt_conn_get_pkts(conn)); - /* move the next TX context from the `pending` list to * the `complete` list. */ @@ -611,6 +609,8 @@ static void hci_num_completed_packets(struct net_buf *buf) break; } + k_sem_give(bt_conn_get_pkts(conn)); + sys_slist_append(&conn->tx_complete, node); /* align the `pending` value */