Message ID | 20220610152902.21677-2-jonas@dptechnics.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 71560e12863ff1b133e421ef7dd25d20c8d83acc |
Headers | show |
Series | Fix bug where bluetooth-meshd stops sending | expand |
Context | Check | Description |
---|---|---|
tedd_an/pre-ci_am | success | Success |
tedd_an/checkpatch | success | Checkpatch PASS |
tedd_an/gitlint | success | Gitlint PASS |
tedd_an/setupell | success | Setup ELL PASS |
tedd_an/buildprep | success | Build Prep PASS |
tedd_an/build | success | Build Configuration PASS |
tedd_an/makecheck | success | Make Check PASS |
tedd_an/makecheckvalgrind | success | Make Check PASS |
tedd_an/makedistcheck | success | Make Distcheck PASS |
tedd_an/build_extell | success | Build External ELL PASS |
tedd_an/build_extell_make | success | Build Make with External ELL PASS |
This is automated email and please do not reply to this email! Dear submitter, Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series: PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=649335 ---Test result--- Test Summary: CheckPatch PASS 0.60 seconds GitLint PASS 0.36 seconds Prep - Setup ELL PASS 51.48 seconds Build - Prep PASS 0.59 seconds Build - Configure PASS 9.86 seconds Build - Make PASS 1784.55 seconds Make Check PASS 12.38 seconds Make Check w/Valgrind PASS 531.01 seconds Make Distcheck PASS 281.18 seconds Build w/ext ELL - Configure PASS 10.16 seconds Build w/ext ELL - Make PASS 1768.46 seconds Incremental Build with patchesPASS 0.00 seconds --- Regards, Linux Bluetooth
diff --git a/mesh/mesh-io-generic.c b/mesh/mesh-io-generic.c index 50a2a6a86..2d7ef261e 100644 --- a/mesh/mesh-io-generic.c +++ b/mesh/mesh-io-generic.c @@ -725,7 +725,6 @@ static bool send_tx(struct mesh_io *io, struct mesh_io_send_info *info, { struct mesh_io_private *pvt = io->pvt; struct tx_pkt *tx; - bool sending = false; if (!info || !data || !len || len > sizeof(tx->pkt)) return false; @@ -739,23 +738,21 @@ static bool send_tx(struct mesh_io *io, struct mesh_io_send_info *info, if (info->type == MESH_IO_TIMING_TYPE_POLL_RSP) l_queue_push_head(pvt->tx_pkts, tx); else { - if (pvt->tx) - sending = true; - else - sending = !l_queue_isempty(pvt->tx_pkts); - - l_queue_push_tail(pvt->tx_pkts, tx); - /* * If transmitter is idle, send packets at least twice to * guard against in-line cancelation of HCI command chain. */ - if (info->type == MESH_IO_TIMING_TYPE_GENERAL && !sending && - tx->info.u.gen.cnt == 1) + if (info->type == MESH_IO_TIMING_TYPE_GENERAL && + !pvt->tx && + l_queue_isempty(pvt->tx_pkts) && + tx->info.u.gen.cnt == 1) tx->info.u.gen.cnt++; + + l_queue_push_tail(pvt->tx_pkts, tx); } - if (!sending) { + /* If not already sending, schedule the tx worker */ + if (!pvt->tx) { l_timeout_remove(pvt->tx_timeout); pvt->tx_timeout = NULL; l_idle_oneshot(tx_worker, pvt, NULL);