From e2566b875995cdf70eada13f0e4cbc312337ac1b Mon Sep 17 00:00:00 2001 From: Luo Xu Date: Thu, 27 Nov 2025 20:03:47 +0800 Subject: [PATCH] fix(ble_mesh): correct long packet segment buffer size calculation (cherry picked from commit 6d59a914014b1525f2bc7d83ad06701a92a3d029) Co-authored-by: luoxu --- components/bt/esp_ble_mesh/core/transport.c | 4 ++-- components/bt/esp_ble_mesh/core/transport.enh.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/components/bt/esp_ble_mesh/core/transport.c b/components/bt/esp_ble_mesh/core/transport.c index 204854e241..8c5319b717 100644 --- a/components/bt/esp_ble_mesh/core/transport.c +++ b/components/bt/esp_ble_mesh/core/transport.c @@ -2105,9 +2105,9 @@ void bt_mesh_trans_init(void) #if CONFIG_BLE_MESH_LONG_PACKET for (i = 0; i < ARRAY_SIZE(ext_seg_rx); i++) { k_delayed_work_init(&ext_seg_rx[i].ack_timer, seg_ack); - ext_seg_rx[i].buf.size = CONFIG_BLE_MESH_LONG_PACKET_ADV_LEN; + ext_seg_rx[i].buf.size = BLE_MESH_EXT_RX_SDU_MAX; ext_seg_rx[i].buf.__buf = (ext_seg_rx_buf_data + - (i * CONFIG_BLE_MESH_LONG_PACKET_ADV_LEN)); + (i * BLE_MESH_EXT_RX_SDU_MAX)); ext_seg_rx[i].buf.data = ext_seg_rx[i].buf.__buf; } #endif diff --git a/components/bt/esp_ble_mesh/core/transport.enh.c b/components/bt/esp_ble_mesh/core/transport.enh.c index 967b523379..d1e054000d 100644 --- a/components/bt/esp_ble_mesh/core/transport.enh.c +++ b/components/bt/esp_ble_mesh/core/transport.enh.c @@ -2723,9 +2723,9 @@ void bt_mesh_trans_init(void) #if CONFIG_BLE_MESH_LONG_PACKET for (i = 0; i < ARRAY_SIZE(ext_seg_rx); i++) { - ext_seg_rx[i].buf.size = CONFIG_BLE_MESH_LONG_PACKET_ADV_LEN; + ext_seg_rx[i].buf.size = BLE_MESH_EXT_RX_SDU_MAX; ext_seg_rx[i].buf.__buf = (ext_seg_rx_buf_data + - (i * CONFIG_BLE_MESH_LONG_PACKET_ADV_LEN)); + (i * BLE_MESH_EXT_RX_SDU_MAX)); ext_seg_rx[i].buf.data = ext_seg_rx[i].buf.__buf; } #endif