When using HCI command chains, the first packet send that starts an
outbound sequence needs to still exist when command chain completes, or
the outbound queue will wedge. The simplest solution is to send packets
at least twice on an empty queue, if there is a chance it could be canceled.
Change-Id: I883422c7143d71fe8309604dd487095de6703f9f
Signed-off-by: anuj.bhumiya <anuj.bhumiya@samsung.com>
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) {