On 12/21/25 15:23, Soumyajyotii Ssarkar wrote:
Set waiting state and return after scsi_req_continue() to prevent
re entrancy when DMA transfer completes.

Signed-off-by: Soumyajyotii Ssarkar<[email protected]>

Reviewed-by: Helge Deller <[email protected]>

---
  hw/scsi/ncr53c710.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/hw/scsi/ncr53c710.c b/hw/scsi/ncr53c710.c
index 0b7734a129..e17d1f3fb8 100644
--- a/hw/scsi/ncr53c710.c
+++ b/hw/scsi/ncr53c710.c
@@ -718,7 +718,9 @@ static void ncr710_do_dma(NCR710State *s, int out)
      if (s->current->dma_len == 0) {
          s->current->dma_buf = NULL;
          s->current->pending = 0;
+        s->waiting = NCR710_WAIT_DMA;
          scsi_req_continue(s->current->req);
+        return;
      } else {
          s->current->dma_buf += count;
          s->waiting = NCR710_WAIT_NONE;


Reply via email to