diff --git a/components/esp_system/task_wdt/task_wdt.c b/components/esp_system/task_wdt/task_wdt.c index bcb56b71777..04d0d020649 100644 --- a/components/esp_system/task_wdt/task_wdt.c +++ b/components/esp_system/task_wdt/task_wdt.c @@ -596,9 +596,9 @@ esp_err_t esp_task_wdt_reconfigure(const esp_task_wdt_config_t *config) esp_task_wdt_impl_timer_restart(p_twdt_obj->impl_ctx); } - portEXIT_CRITICAL(&spinlock); err: - return ESP_OK; + portEXIT_CRITICAL(&spinlock); + return ret; } esp_err_t esp_task_wdt_stop(void) diff --git a/components/esp_system/task_wdt/task_wdt_impl_esp_timer.c b/components/esp_system/task_wdt/task_wdt_impl_esp_timer.c index e88e077a45c..dc21eb93944 100644 --- a/components/esp_system/task_wdt/task_wdt_impl_esp_timer.c +++ b/components/esp_system/task_wdt/task_wdt_impl_esp_timer.c @@ -126,7 +126,7 @@ esp_err_t esp_task_wdt_impl_timer_stop(twdt_ctx_t obj) ret = ESP_ERR_INVALID_STATE; } - if (ret == ESP_OK) { + if (ret == ESP_OK && esp_timer_is_active(ctx->sw_timer)) { ret = esp_timer_stop(ctx->sw_timer); }