diff options
author | Shiva sagar Myana <Shivasagar.Myana@amd.com> | 2024-09-24 16:50:35 +0530 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2024-10-01 13:55:38 +0100 |
commit | a8cc14435e675e86cba9afce8aa5e098b2e43ff4 (patch) | |
tree | 710ddb8f743ea34a9f1d65b3607ecc2735a46285 | |
parent | 67d762e716a7127ecc114e9708254316dd521911 (diff) | |
download | qemu-a8cc14435e675e86cba9afce8aa5e098b2e43ff4.zip qemu-a8cc14435e675e86cba9afce8aa5e098b2e43ff4.tar.gz qemu-a8cc14435e675e86cba9afce8aa5e098b2e43ff4.tar.bz2 |
hw/ssi/xilinx_spips: Fix flash erase assert in dual parallel configuration
Ensure that the FIFO is checked for emptiness before popping data
from it. Previously, the code directly popped the data from the FIFO
without checking, which could cause an assertion failure:
../util/fifo8.c:67: fifo8_pop: Assertion `fifo->num > 0' failed.
Signed-off-by: Shiva sagar Myana <Shivasagar.Myana@amd.com>
Message-id: 20240924112035.1320865-1-Shivasagar.Myana@amd.com
Reviewed-by: Francisco Iglesias <francisco.iglesias@amd.com>
[PMM: tweaked commit message]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r-- | hw/ssi/xilinx_spips.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/hw/ssi/xilinx_spips.c b/hw/ssi/xilinx_spips.c index 1595a88..aeb462c 100644 --- a/hw/ssi/xilinx_spips.c +++ b/hw/ssi/xilinx_spips.c @@ -620,7 +620,9 @@ static void xilinx_spips_flush_txfifo(XilinxSPIPS *s) } else if (s->snoop_state == SNOOP_STRIPING || s->snoop_state == SNOOP_NONE) { for (i = 0; i < num_effective_busses(s); ++i) { - tx_rx[i] = fifo8_pop(&s->tx_fifo); + if (!fifo8_is_empty(&s->tx_fifo)) { + tx_rx[i] = fifo8_pop(&s->tx_fifo); + } } stripe8(tx_rx, num_effective_busses(s), false); } else if (s->snoop_state >= SNOOP_ADDR) { |