mirror of https://github.com/xemu-project/xemu.git
esp.c: update esp_do_dma() bypass if async_len is zero to include non-zero transfer check
In the PDMA case the last transfer from the device to the FIFO has occurred (async_len is zero) but esp_do_dma() is still being called to drain the remaining FIFO contents. The additional non-zero transfer check ensures that we still defer the SCSI layer in the case where we are waiting for data for a TI command or a DMA enable signal. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Tested-by: Helge Deller <deller@gmx.de> Tested-by: Thomas Huth <thuth@redhat.com> Message-Id: <20240112125420.514425-35-mark.cave-ayland@ilande.co.uk> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
This commit is contained in:
parent
3c7f3c8b57
commit
4460b86a04
hw/scsi
|
@ -696,7 +696,7 @@ static void esp_do_dma(ESPState *s)
|
|||
if (!s->current_req) {
|
||||
return;
|
||||
}
|
||||
if (s->async_len == 0) {
|
||||
if (s->async_len == 0 && esp_get_tc(s) && s->ti_size) {
|
||||
/* Defer until data is available. */
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue