From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=51848 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PTeMp-0001Pz-6l for qemu-devel@nongnu.org; Fri, 17 Dec 2010 12:46:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PTeLh-0002uw-8i for qemu-devel@nongnu.org; Fri, 17 Dec 2010 12:45:18 -0500 Received: from mx1.redhat.com ([209.132.183.28]:60650) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PTeLh-0002uf-1n for qemu-devel@nongnu.org; Fri, 17 Dec 2010 12:44:09 -0500 From: Kevin Wolf Date: Fri, 17 Dec 2010 18:44:24 +0100 Message-Id: <1292607893-13461-10-git-send-email-kwolf@redhat.com> In-Reply-To: <1292607893-13461-1-git-send-email-kwolf@redhat.com> References: <1292607893-13461-1-git-send-email-kwolf@redhat.com> Subject: [Qemu-devel] [PATCH 09/38] ide: move transfer_start after variable modification List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: anthony@codemonkey.ws Cc: kwolf@redhat.com, qemu-devel@nongnu.org From: Alexander Graf We hook into transfer_start and immediately call the end function for ahci. This means that everything needs to be in place for the end function when we start the transfer, so let's move the function down to where all state is in place. Signed-off-by: Alexander Graf Signed-off-by: Kevin Wolf --- hw/ide/core.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/ide/core.c b/hw/ide/core.c index 2032e20..228911d 100644 --- a/hw/ide/core.c +++ b/hw/ide/core.c @@ -814,11 +814,11 @@ static void ide_atapi_cmd_reply_end(IDEState *s) size = s->cd_sector_size - s->io_buffer_index; if (size > s->elementary_transfer_size) size = s->elementary_transfer_size; - ide_transfer_start(s, s->io_buffer + s->io_buffer_index, - size, ide_atapi_cmd_reply_end); s->packet_transfer_size -= size; s->elementary_transfer_size -= size; s->io_buffer_index += size; + ide_transfer_start(s, s->io_buffer + s->io_buffer_index - size, + size, ide_atapi_cmd_reply_end); } else { /* a new transfer is needed */ s->nsector = (s->nsector & ~7) | ATAPI_INT_REASON_IO; @@ -843,11 +843,11 @@ static void ide_atapi_cmd_reply_end(IDEState *s) if (size > (s->cd_sector_size - s->io_buffer_index)) size = (s->cd_sector_size - s->io_buffer_index); } - ide_transfer_start(s, s->io_buffer + s->io_buffer_index, - size, ide_atapi_cmd_reply_end); s->packet_transfer_size -= size; s->elementary_transfer_size -= size; s->io_buffer_index += size; + ide_transfer_start(s, s->io_buffer + s->io_buffer_index - size, + size, ide_atapi_cmd_reply_end); ide_set_irq(s->bus); #ifdef DEBUG_IDE_ATAPI printf("status=0x%x\n", s->status); -- 1.7.2.3