diff --git a/arch/xtensa/src/esp32s2/esp32s2_rtc.c b/arch/xtensa/src/esp32s2/esp32s2_rtc.c index 5cef4398e94..0778310fb60 100644 --- a/arch/xtensa/src/esp32s2/esp32s2_rtc.c +++ b/arch/xtensa/src/esp32s2/esp32s2_rtc.c @@ -2688,8 +2688,7 @@ int up_rtc_cancelalarm(enum alm_id_e alarmid) if (cbinfo->ac_cb != NULL) { - sched_lock(); - flags = spin_lock_irqsave(&g_rtc_lock); + flags = spin_lock_irqsave_nopreempt(&g_rtc_lock); /* Stop and delete the alarm */ @@ -2700,8 +2699,7 @@ int up_rtc_cancelalarm(enum alm_id_e alarmid) cbinfo->deadline_us = 0; cbinfo->alarm_hdl = NULL; - spin_unlock_irqrestore(&g_rtc_lock, flags); - sched_unlock(); + spin_unlock_irqrestore_nopreempt(&g_rtc_lock, flags); ret = OK; }