From af843eb7984101c130393e91f670b4b32a4e779c Mon Sep 17 00:00:00 2001 From: chengkai Date: Fri, 22 Mar 2024 18:11:50 +0800 Subject: [PATCH] bluetooth: check work_available with retxworker retxworker would delay when there are many tx hci data Signed-off-by: chengkai --- drivers/wireless/bluetooth/bt_slip.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/wireless/bluetooth/bt_slip.c b/drivers/wireless/bluetooth/bt_slip.c index 8560ca498d3..f51a07963ea 100644 --- a/drivers/wireless/bluetooth/bt_slip.c +++ b/drivers/wireless/bluetooth/bt_slip.c @@ -750,8 +750,12 @@ static int bt_slip_send(FAR struct bt_driver_s *dev, frame->type = type; frame->pktlen = len; memcpy(frame->data, data, len); - work_queue(HPWORK, &priv->retxworker, bt_slip_retx_work, - priv, BT_SLIP_RTX_TIMEOUT); + + if (work_available(&priv->retxworker)) + { + work_queue(HPWORK, &priv->retxworker, bt_slip_retx_work, + priv, BT_SLIP_RTX_TIMEOUT); + } end: nxmutex_unlock(&priv->sliplock);