]> granicus.if.org Git - esp-idf/commitdiff
component/bt: Fix BTU task watchdog timeout after pair with iphone
authorbaohongde <baohongde@espressif.com>
Wed, 26 Sep 2018 03:59:54 +0000 (11:59 +0800)
committerbaohongde <baohongde@espressif.com>
Wed, 26 Sep 2018 03:59:54 +0000 (11:59 +0800)
Create a new pending queue, then re-submit pending requests in old pending queue,preventing new events being inserted into it.

Closes https://github.com/espressif/esp-idf/issues/2191

components/bt/bluedroid/stack/btm/btm_sec.c

index 29b2ac50ff070a2d6984a1120b4a1f118340fa6e..642edf3b1846876d7d82f646a7023d503f4add57 100644 (file)
@@ -2761,9 +2761,9 @@ void btm_sec_check_pending_reqs (void)
 
         /* Now, re-submit anything in the mux queue */
         bq = btm_cb.sec_pending_q;
-        if (!btm_cb.sec_pending_q) {
-            btm_cb.sec_pending_q = fixed_queue_new(QUEUE_SIZE_MAX);
-        }
+
+        btm_cb.sec_pending_q = fixed_queue_new(QUEUE_SIZE_MAX);
+
 
         while ((p_e = (tBTM_SEC_QUEUE_ENTRY *)fixed_queue_try_dequeue(bq)) != NULL) {
             /* Check that the ACL is still up before starting security procedures */
@@ -2784,6 +2784,7 @@ void btm_sec_check_pending_reqs (void)
 
             osi_free (p_e);
         }
+        fixed_queue_free(bq, NULL);
     }
 }
 #endif  ///SMP_INCLUDED == TRUE