aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShiva sagar Myana <Shivasagar.Myana@amd.com>2024-09-24 16:50:35 +0530
committerPeter Maydell <peter.maydell@linaro.org>2024-10-01 13:55:38 +0100
commita8cc14435e675e86cba9afce8aa5e098b2e43ff4 (patch)
tree710ddb8f743ea34a9f1d65b3607ecc2735a46285
parent67d762e716a7127ecc114e9708254316dd521911 (diff)
downloadqemu-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.c4
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) {