spi: fix a possible concurrency issue

pull/7874/head
Michael (XIAO Xufeng) 2019-05-31 15:23:10 +08:00 zatwierdzone przez bot
rodzic d4d162640f
commit 1138133a78
1 zmienionych plików z 6 dodań i 4 usunięć

Wyświetl plik

@ -361,12 +361,14 @@ static void SPI_SLAVE_ISR_ATTR spi_intr(void *arg)
}
}
//Disable interrupt before checking to avoid concurrency issue.
esp_intr_disable(host->intr);
//Grab next transaction
r = xQueueReceiveFromISR(host->trans_queue, &trans, &do_yield);
if (!r) {
//No packet waiting. Disable interrupt.
esp_intr_disable(host->intr);
} else {
if (r) {
//enable the interrupt again if there is packet to send
esp_intr_enable(host->intr);
//We have a transaction. Send it.
host->cur_trans = trans;