mirror of
https://github.com/espressif/esp-idf.git
synced 2025-07-31 19:24:33 +02:00
Merge branch 'bugfix/ble_hci_issues_chain_mbuf_v5.1' into 'release/v5.1'
fix hci issues when chain mbuf exists See merge request espressif/esp-idf!25532
This commit is contained in:
@@ -311,6 +311,7 @@ void esp_vhci_host_send_packet(uint8_t *data, uint16_t len)
|
|||||||
if (*(data) == DATA_TYPE_COMMAND) {
|
if (*(data) == DATA_TYPE_COMMAND) {
|
||||||
struct ble_hci_cmd *cmd = NULL;
|
struct ble_hci_cmd *cmd = NULL;
|
||||||
cmd = (struct ble_hci_cmd *) ble_hci_trans_buf_alloc(BLE_HCI_TRANS_BUF_CMD);
|
cmd = (struct ble_hci_cmd *) ble_hci_trans_buf_alloc(BLE_HCI_TRANS_BUF_CMD);
|
||||||
|
assert(cmd);
|
||||||
memcpy((uint8_t *)cmd, data + 1, len - 1);
|
memcpy((uint8_t *)cmd, data + 1, len - 1);
|
||||||
ble_hci_trans_hs_cmd_tx((uint8_t *)cmd);
|
ble_hci_trans_hs_cmd_tx((uint8_t *)cmd);
|
||||||
}
|
}
|
||||||
|
@@ -317,6 +317,7 @@ void esp_vhci_host_send_packet(uint8_t *data, uint16_t len)
|
|||||||
if (*(data) == DATA_TYPE_COMMAND) {
|
if (*(data) == DATA_TYPE_COMMAND) {
|
||||||
struct ble_hci_cmd *cmd = NULL;
|
struct ble_hci_cmd *cmd = NULL;
|
||||||
cmd = (struct ble_hci_cmd *) ble_hci_trans_buf_alloc(BLE_HCI_TRANS_BUF_CMD);
|
cmd = (struct ble_hci_cmd *) ble_hci_trans_buf_alloc(BLE_HCI_TRANS_BUF_CMD);
|
||||||
|
assert(cmd);
|
||||||
memcpy((uint8_t *)cmd, data + 1, len - 1);
|
memcpy((uint8_t *)cmd, data + 1, len - 1);
|
||||||
ble_hci_trans_hs_cmd_tx((uint8_t *)cmd);
|
ble_hci_trans_hs_cmd_tx((uint8_t *)cmd);
|
||||||
}
|
}
|
||||||
|
@@ -313,6 +313,7 @@ void esp_vhci_host_send_packet(uint8_t *data, uint16_t len)
|
|||||||
if (*(data) == DATA_TYPE_COMMAND) {
|
if (*(data) == DATA_TYPE_COMMAND) {
|
||||||
struct ble_hci_cmd *cmd = NULL;
|
struct ble_hci_cmd *cmd = NULL;
|
||||||
cmd = (struct ble_hci_cmd *) ble_hci_trans_buf_alloc(BLE_HCI_TRANS_BUF_CMD);
|
cmd = (struct ble_hci_cmd *) ble_hci_trans_buf_alloc(BLE_HCI_TRANS_BUF_CMD);
|
||||||
|
assert(cmd);
|
||||||
memcpy((uint8_t *)cmd, data + 1, len - 1);
|
memcpy((uint8_t *)cmd, data + 1, len - 1);
|
||||||
ble_hci_trans_hs_cmd_tx((uint8_t *)cmd);
|
ble_hci_trans_hs_cmd_tx((uint8_t *)cmd);
|
||||||
}
|
}
|
||||||
|
@@ -613,7 +613,7 @@ ble_hs_hci_rx_evt(uint8_t *hci_ev, void *arg)
|
|||||||
int
|
int
|
||||||
ble_hs_rx_data(struct os_mbuf *om, void *arg)
|
ble_hs_rx_data(struct os_mbuf *om, void *arg)
|
||||||
{
|
{
|
||||||
uint16_t len = om->om_len + 1;
|
uint16_t len = OS_MBUF_PKTHDR(om)->omp_len + 1;
|
||||||
uint8_t *data = (uint8_t *)malloc(len);
|
uint8_t *data = (uint8_t *)malloc(len);
|
||||||
assert(data != NULL);
|
assert(data != NULL);
|
||||||
data[0] = 0x02;
|
data[0] = 0x02;
|
||||||
|
Reference in New Issue
Block a user