mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
Merge branch 'bugfix/l2cap_use_wrong_handle_v5.0' into 'release/v5.0'
fix(bt/bluedroid): Fixed the issue of using the wrong handle to handle the BTA_JV_L2CAP_READ_EVT event(v5.0) See merge request espressif/esp-idf!31281
This commit is contained in:
commit
f864a09ca6
@ -907,7 +907,6 @@ void btc_l2cap_cb_handler(btc_msg_t *msg)
|
||||
fixed_queue_enqueue(slot->rx.queue, p_data_buf, FIXED_QUEUE_MAX_TIMEOUT);
|
||||
} else {
|
||||
osi_free(p_data_buf);
|
||||
break;
|
||||
}
|
||||
}
|
||||
osi_mutex_unlock(&l2cap_local_param.l2cap_slot_mutex);
|
||||
@ -946,12 +945,11 @@ void btc_l2cap_cb_handler(btc_msg_t *msg)
|
||||
break; // to do disconnect
|
||||
}
|
||||
memset(p_data_buf, 0, count + sizeof(BT_HDR));
|
||||
p_data_buf->len = BTA_JvL2capRead(p_data->data_ind.handle, slot->id, p_data_buf->data, count);
|
||||
p_data_buf->len = BTA_JvL2capRead(p_data->l2c_read.handle, slot->id, p_data_buf->data, count);
|
||||
if (p_data_buf->len > 0) {
|
||||
fixed_queue_enqueue(slot->rx.queue, p_data_buf, FIXED_QUEUE_MAX_TIMEOUT);
|
||||
} else {
|
||||
osi_free(p_data_buf);
|
||||
break;
|
||||
}
|
||||
}
|
||||
osi_mutex_unlock(&l2cap_local_param.l2cap_slot_mutex);
|
||||
@ -1061,7 +1059,7 @@ static ssize_t l2cap_vfs_write(int fd, const void * data, size_t size)
|
||||
if (!enqueue_status) {
|
||||
BTC_TRACE_DEBUG("%s tx_len:%d, fd:%d\n", __func__, fixed_queue_length(slot->tx.queue), fd);
|
||||
osi_mutex_unlock(&l2cap_local_param.l2cap_slot_mutex);
|
||||
//block untill under water level, be closed or time out
|
||||
//block until under water level, be closed or time out
|
||||
tx_event_group_val =
|
||||
xEventGroupWaitBits(l2cap_local_param.tx_event_group, SLOT_WRITE_BIT(serial) | SLOT_CLOSE_BIT(serial), pdTRUE,
|
||||
pdFALSE, VFS_WRITE_TIMEOUT / portTICK_PERIOD_MS);
|
||||
|
Loading…
Reference in New Issue
Block a user