Diff between a081a337bddd68924e3f48835c5e09f1bdbaeef9 and 81cba0be7e27777f629370ecab5f065fdf47eca9
Changed Files
| File | Additions | Deletions | Status |
| mesh/mesh-io-generic.c | +8 | -0 | modified |
Full Patch
diff --git a/mesh/mesh-io-generic.c b/mesh/mesh-io-generic.c
index 8695251..4b26b11 100644
--- a/mesh/mesh-io-generic.c
+++ b/mesh/mesh-io-generic.c
@@ -714,6 +714,14 @@ static bool send_tx(struct mesh_io *io, struct mesh_io_send_info *info,
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)
+ tx->info.u.gen.cnt++;
}
if (!sending) {