From 69ec8bc962def5c4d3a42aba1013fa8a60df787c Mon Sep 17 00:00:00 2001 From: Zhou Xiao Date: Sun, 4 Jan 2026 10:17:34 +0800 Subject: [PATCH] fix(ble): fixed cache error risk in ble log module --- components/bt/common/ble_log/src/ble_log_lbm.c | 3 ++- components/bt/common/ble_log/src/ble_log_util.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/components/bt/common/ble_log/src/ble_log_lbm.c b/components/bt/common/ble_log/src/ble_log_lbm.c index 0cc996c721..4504663c5f 100644 --- a/components/bt/common/ble_log/src/ble_log_lbm.c +++ b/components/bt/common/ble_log/src/ble_log_lbm.c @@ -107,7 +107,8 @@ void ble_log_lbm_write_trans(ble_log_prph_trans_t **trans, ble_log_src_t src_cod } if (len_append) { #if CONFIG_SOC_ESP_NIMBLE_CONTROLLER - if (omdata) { + if (omdata && !BLE_LOG_IN_ISR()) { + /* os_mbuf_copydata is in flash and not safe to call from ISR */ os_mbuf_copydata((struct os_mbuf *)addr_append, 0, len_append, buf + BLE_LOG_FRAME_HEAD_LEN + len); } diff --git a/components/bt/common/ble_log/src/ble_log_util.c b/components/bt/common/ble_log/src/ble_log_util.c index c084d6d249..aac709e4e1 100644 --- a/components/bt/common/ble_log/src/ble_log_util.c +++ b/components/bt/common/ble_log/src/ble_log_util.c @@ -20,7 +20,8 @@ portMUX_TYPE ble_log_spin_lock = portMUX_INITIALIZER_UNLOCKED; #if CONFIG_BLE_LOG_XOR_CHECKSUM_ENABLED #include "esp_compiler.h" -static inline uint32_t ror32(uint32_t word, uint32_t shift) +BLE_LOG_IRAM_ATTR BLE_LOG_STATIC BLE_LOG_INLINE +uint32_t ror32(uint32_t word, uint32_t shift) { if (unlikely(shift == 0)) { return word;