mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
bluedroid: fixed gatt tcb free when disconnecting
This commit is contained in:
parent
2101438df6
commit
bddb13efb2
@ -1239,6 +1239,7 @@ extern BOOLEAN L2CA_CheckIsCongest(UINT16 fixed_cid, BD_ADDR addr);
|
|||||||
#define L2CA_DECREASE_BTU_NUM 4
|
#define L2CA_DECREASE_BTU_NUM 4
|
||||||
#define L2CA_BUFF_INI 5
|
#define L2CA_BUFF_INI 5
|
||||||
#define L2CA_BUFF_DEINIT 6
|
#define L2CA_BUFF_DEINIT 6
|
||||||
|
#define L2CA_BUFF_FREE 7
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
UINT16 conn_id;
|
UINT16 conn_id;
|
||||||
|
@ -2386,6 +2386,12 @@ void l2ble_update_att_acl_pkt_num(UINT8 type, tl2c_buff_param_t *param)
|
|||||||
buff_semaphore = NULL;
|
buff_semaphore = NULL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case L2CA_BUFF_FREE:{
|
||||||
|
xSemaphoreTake(buff_semaphore, portMAX_DELAY);
|
||||||
|
// Do nothing
|
||||||
|
xSemaphoreGive(buff_semaphore);
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -1707,6 +1707,12 @@ void l2cu_release_ccb (tL2C_CCB *p_ccb)
|
|||||||
if (!p_ccb->in_use) {
|
if (!p_ccb->in_use) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#if BLE_INCLUDED == TRUE
|
||||||
|
if (p_lcb->transport == BT_TRANSPORT_LE) {
|
||||||
|
/* Take samephore to avoid race condition */
|
||||||
|
l2ble_update_att_acl_pkt_num(L2CA_BUFF_FREE, NULL);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
#if (SDP_INCLUDED == TRUE)
|
#if (SDP_INCLUDED == TRUE)
|
||||||
if (p_rcb && (p_rcb->psm != p_rcb->real_psm)) {
|
if (p_rcb && (p_rcb->psm != p_rcb->real_psm)) {
|
||||||
btm_sec_clr_service_by_psm(p_rcb->psm);
|
btm_sec_clr_service_by_psm(p_rcb->psm);
|
||||||
|
Loading…
Reference in New Issue
Block a user