forked from espressif/esp-idf
fix(driver_spi): fixed coverity check in slave and slave_hd
This commit is contained in:
@@ -471,7 +471,7 @@ esp_err_t SPI_SLAVE_ATTR spi_slave_queue_reset(spi_host_device_t host)
|
||||
|
||||
spi_slave_trans_priv_t trans;
|
||||
while (uxQueueMessagesWaiting(spihost[host]->trans_queue)) {
|
||||
xQueueReceive(spihost[host]->trans_queue, &trans, 0);
|
||||
SPI_CHECK(pdTRUE == xQueueReceive(spihost[host]->trans_queue, &trans, 0), "can't reset queue", ESP_ERR_INVALID_STATE);
|
||||
spi_slave_uninstall_priv_trans(host, &trans);
|
||||
}
|
||||
spihost[host]->cur_trans.trans = NULL;
|
||||
@@ -527,7 +527,7 @@ esp_err_t SPI_SLAVE_ISR_ATTR spi_slave_queue_reset_isr(spi_host_device_t host)
|
||||
spi_slave_trans_priv_t trans;
|
||||
BaseType_t do_yield = pdFALSE;
|
||||
while (pdFALSE == xQueueIsQueueEmptyFromISR(spihost[host]->trans_queue)) {
|
||||
xQueueReceiveFromISR(spihost[host]->trans_queue, &trans, &do_yield);
|
||||
ESP_RETURN_ON_FALSE_ISR(pdTRUE == xQueueReceiveFromISR(spihost[host]->trans_queue, &trans, &do_yield), ESP_ERR_INVALID_STATE, SPI_TAG, "can't reset queue");
|
||||
spi_slave_uninstall_priv_trans(host, &trans);
|
||||
}
|
||||
if (do_yield) {
|
||||
|
@@ -437,7 +437,7 @@ static IRAM_ATTR void s_spi_slave_hd_segment_isr(void *arg)
|
||||
bool rx_sent = false;
|
||||
if (!host->tx_curr_trans.trans) {
|
||||
ret = xQueueReceiveFromISR(host->tx_trans_queue, &host->tx_curr_trans, &awoken);
|
||||
if (ret == pdTRUE) {
|
||||
if ((ret == pdTRUE) && host->tx_curr_trans.trans) {
|
||||
spicommon_dma_desc_setup_link(hal->dmadesc_tx->desc, host->tx_curr_trans.aligned_buffer, host->tx_curr_trans.trans->len, false);
|
||||
spi_dma_reset(host->dma_ctx->tx_dma_chan);
|
||||
spi_slave_hd_hal_txdma(hal);
|
||||
@@ -456,7 +456,7 @@ static IRAM_ATTR void s_spi_slave_hd_segment_isr(void *arg)
|
||||
}
|
||||
if (!host->rx_curr_trans.trans) {
|
||||
ret = xQueueReceiveFromISR(host->rx_trans_queue, &host->rx_curr_trans, &awoken);
|
||||
if (ret == pdTRUE) {
|
||||
if ((ret == pdTRUE) && host->rx_curr_trans.trans) {
|
||||
spicommon_dma_desc_setup_link(hal->dmadesc_rx->desc, host->rx_curr_trans.aligned_buffer, host->rx_curr_trans.trans->len, true);
|
||||
spi_dma_reset(host->dma_ctx->rx_dma_chan);
|
||||
spi_slave_hd_hal_rxdma(hal);
|
||||
|
Reference in New Issue
Block a user