You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
I have searched the issue tracker for a similar issue and not found a similar issue.
General issue report
The function esp_intr_free() in components/esp_hw_support/intr_alloc.c on line 703 does this:
//Assign this routine to the core where this interrupt is allocated on.if (handle->vector_desc->cpu != esp_cpu_get_core_id()) {
esp_err_t ret = esp_ipc_call_blocking(handle->vector_desc->cpu, &esp_intr_free_cb, (void *)handle);
return ret == ESP_OK ? ESP_OK : ESP_FAIL;
}
If this routine is run on a task that has no core affinity, the scheduler could move it to the other core after esp_cpu_get_core_id() got called. The call to esp_ipc_call_blocking() should therefore be made unconditionally, but at least in all cases in which the current task has no affinity.
The text was updated successfully, but these errors were encountered:
github-actionsbot
changed the title
esp_intr_free(): core could change after call to esp_cpu_get_core_id()
esp_intr_free(): core could change after call to esp_cpu_get_core_id() (IDFGH-11480)
Nov 17, 2023
Hi @gralpli!
Thanks for reporting it. I created a fix for it. I am wondering how this issue affects the system. Did you get an error message?
This would be useful to share an error log (or incorrect behavior that you observed) for people who encounter the same problem.
Answers checklist.
General issue report
The function esp_intr_free() in components/esp_hw_support/intr_alloc.c on line 703 does this:
If this routine is run on a task that has no core affinity, the scheduler could move it to the other core after esp_cpu_get_core_id() got called. The call to esp_ipc_call_blocking() should therefore be made unconditionally, but at least in all cases in which the current task has no affinity.
The text was updated successfully, but these errors were encountered: