The limiting of DMA transfers to the maximum size of the available data is already handled by esp_do_dma() and do_dma_pdma_cb().
Signed-off-by: Mark Cave-Ayland <mark.cave-ayl...@ilande.co.uk> --- hw/scsi/esp.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/hw/scsi/esp.c b/hw/scsi/esp.c index fcc99f5fe4..e7cf36f4b8 100644 --- a/hw/scsi/esp.c +++ b/hw/scsi/esp.c @@ -553,7 +553,7 @@ void esp_transfer_data(SCSIRequest *req, uint32_t len) static void handle_ti(ESPState *s) { - uint32_t dmalen, minlen; + uint32_t dmalen; if (s->dma && !s->dma_enabled) { s->dma_cb = handle_ti; @@ -561,16 +561,8 @@ static void handle_ti(ESPState *s) } dmalen = esp_get_tc(s); - - if (s->do_cmd) { - minlen = (dmalen < ESP_CMDBUF_SZ) ? dmalen : ESP_CMDBUF_SZ; - } else if (s->ti_size < 0) { - minlen = (dmalen < -s->ti_size) ? dmalen : -s->ti_size; - } else { - minlen = (dmalen < s->ti_size) ? dmalen : s->ti_size; - } - trace_esp_handle_ti(minlen); if (s->dma) { + trace_esp_handle_ti(dmalen); s->rregs[ESP_RSTAT] &= ~STAT_TC; esp_do_dma(s); } else if (s->do_cmd) { -- 2.20.1