You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2024/10/17 10:09:48 UTC

(nuttx) 10/27: bluetooth: add nxmutex_lock check

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 946dad5ff03d12b68f835b4b226f190d0b224713
Author: chengkai <ch...@xiaomi.com>
AuthorDate: Tue Feb 20 16:15:02 2024 +0800

    bluetooth: add nxmutex_lock check
    
    Signed-off-by: chengkai <ch...@xiaomi.com>
---
 drivers/wireless/bluetooth/bt_slip.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/drivers/wireless/bluetooth/bt_slip.c b/drivers/wireless/bluetooth/bt_slip.c
index 3da65525ac..8560ca498d 100644
--- a/drivers/wireless/bluetooth/bt_slip.c
+++ b/drivers/wireless/bluetooth/bt_slip.c
@@ -698,7 +698,12 @@ static int bt_slip_send(FAR struct bt_driver_s *dev,
 
   priv = (FAR struct sliphci_s *)dev;
 
-  nxmutex_lock(&priv->sliplock);
+  ret = nxmutex_lock(&priv->sliplock);
+  if (ret < 0)
+    {
+      return ret;
+    }
+
   if (bt_slip_unack_size(priv) >= priv->txwin)
     {
       bt_slip_send_ack(priv);
@@ -711,7 +716,11 @@ static int bt_slip_send(FAR struct bt_driver_s *dev,
         {
           nxmutex_unlock(&priv->sliplock);
           nxsem_wait_uninterruptible(&priv->sem);
-          nxmutex_lock(&priv->sliplock);
+          ret = nxmutex_lock(&priv->sliplock);
+          if (ret < 0)
+            {
+              return ret;
+            }
         }
     }
 
@@ -767,6 +776,7 @@ static int bt_slip_receive(FAR struct bt_driver_s *drv,
   uint16_t checksum;
   size_t remaining;
   uint8_t state;
+  int ret;
   enum
     {
       PACKET_START,
@@ -776,7 +786,12 @@ static int bt_slip_receive(FAR struct bt_driver_s *drv,
       PACKET_END,
     };
 
-  nxmutex_lock(&priv->sliplock);
+  ret = nxmutex_lock(&priv->sliplock);
+  if (ret < 0)
+    {
+      return ret;
+    }
+
   for (packet = data, cursor = data, header = data, state = PACKET_START;
        packet < (FAR uint8_t *)data + len; packet++)
     {