This is an automated email from the ASF dual-hosted git repository.

simbit18 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit 8f42a6f6d70ccda9c81b6fcaaf5669794165cce6
Author: Filipe Cavalcanti <[email protected]>
AuthorDate: Mon Oct 20 15:21:15 2025 -0300

    arch/xtensa: add critical section on e-fuse bringup
    
    The efuse initialization requires critical section to avoid a very
    hidden corner case when flash encryption is enabled.
    
    Signed-off-by: Filipe Cavalcanti <[email protected]>
---
 arch/xtensa/src/common/espressif/esp_efuse.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/xtensa/src/common/espressif/esp_efuse.c 
b/arch/xtensa/src/common/espressif/esp_efuse.c
index da6a14f465c..813a7a29106 100644
--- a/arch/xtensa/src/common/espressif/esp_efuse.c
+++ b/arch/xtensa/src/common/espressif/esp_efuse.c
@@ -286,6 +286,7 @@ int esp_efuse_initialize(const char *devpath)
 {
   struct esp_efuse_lowerhalf_s *lower = NULL;
   int ret = OK;
+  irqstate_t flags;
 
   DEBUGASSERT(devpath != NULL);
 
@@ -293,6 +294,7 @@ int esp_efuse_initialize(const char *devpath)
 
   /* Register the efuse upper driver */
 
+  flags = enter_critical_section();
   lower->upper = efuse_register(devpath,
                                 (struct efuse_lowerhalf_s *)lower);
 
@@ -312,6 +314,7 @@ int esp_efuse_initialize(const char *devpath)
   esp_efuse_utility_update_virt_blocks();
 #endif
 
+  leave_critical_section(flags);
   return ret;
 }
 #endif

Reply via email to