From 36334faf35ccc48d61ca3431a5c0787b125dd306 Mon Sep 17 00:00:00 2001 From: John Snow Date: Fri, 31 Oct 2014 16:03:37 -0400 Subject: ide: repair PIO transfers for cases where nsector > 1 Currently, for emulated PIO transfers through the AHCI device, any attempt made to request more than a single sector's worth of data will result in the same sector being transferred over and over. For example, if we request 8 sectors via PIO READ SECTORS, the AHCI device will give us the same sector eight times. This patch adds offset tracking into the PIO pathways so that we can fulfill these requests appropriately. Signed-off-by: John Snow Reviewed-by: Paolo Bonzini Message-id: 1414785819-26209-2-git-send-email-jsnow@redhat.com Signed-off-by: Stefan Hajnoczi --- hw/ide/ahci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'hw/ide/ahci.c') diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index 1f3f951..dbd6773 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -1093,7 +1093,7 @@ static void ahci_start_transfer(IDEDMA *dma) goto out; } - if (!ahci_populate_sglist(ad, &s->sg, 0)) { + if (!ahci_populate_sglist(ad, &s->sg, s->io_buffer_offset)) { has_sglist = 1; } -- cgit v1.1