qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH 04/11] ide: move transfer_start after variable m


From: Kevin Wolf
Subject: [Qemu-devel] Re: [PATCH 04/11] ide: move transfer_start after variable modification
Date: Tue, 14 Dec 2010 17:21:18 +0100
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.15) Gecko/20101027 Fedora/3.0.10-1.fc12 Thunderbird/3.0.10

Am 14.12.2010 01:34, schrieb 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 <address@hidden>
> ---
>  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 2d0ad56..04e463a 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,

I think this should be  s->io_buffer + s->io_buffer_index - size.

Kevin

> +                               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);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]