ide: commonize io_buffer_index initialization
Resetting the io_buffer_index to 0 is commonized, with the exception of the case within ide_atapi_cmd_reply, where we need to reset this index to 0 prior to the ide_atapi_cmd_reply_end call. Note that not all calls to ide_atapi_cmd_reply_end expect the index to be 0, so setting it there is not appropriate. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: John Snow <jsnow@redhat.com> Message-id: 1424708286-16483-12-git-send-email-jsnow@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
d12b9ff2a4
commit
c71c06d437
@ -252,7 +252,6 @@ static void ide_atapi_cmd_reply(IDEState *s, int size, int max_size)
|
||||
s->packet_transfer_size = size;
|
||||
s->io_buffer_size = size; /* dma: send the reply data as one chunk */
|
||||
s->elementary_transfer_size = 0;
|
||||
s->io_buffer_index = 0;
|
||||
|
||||
if (s->atapi_dma) {
|
||||
block_acct_start(blk_get_stats(s->blk), &s->acct, size,
|
||||
@ -261,6 +260,7 @@ static void ide_atapi_cmd_reply(IDEState *s, int size, int max_size)
|
||||
ide_start_dma(s, ide_atapi_cmd_read_dma_cb);
|
||||
} else {
|
||||
s->status = READY_STAT | SEEK_STAT;
|
||||
s->io_buffer_index = 0;
|
||||
ide_atapi_cmd_reply_end(s);
|
||||
}
|
||||
}
|
||||
@ -368,7 +368,6 @@ static void ide_atapi_cmd_read_dma(IDEState *s, int lba, int nb_sectors,
|
||||
{
|
||||
s->lba = lba;
|
||||
s->packet_transfer_size = nb_sectors * sector_size;
|
||||
s->io_buffer_index = 0;
|
||||
s->io_buffer_size = 0;
|
||||
s->cd_sector_size = sector_size;
|
||||
|
||||
|
@ -780,7 +780,6 @@ eot:
|
||||
static void ide_sector_start_dma(IDEState *s, enum ide_dma_cmd dma_cmd)
|
||||
{
|
||||
s->status = READY_STAT | SEEK_STAT | DRQ_STAT | BUSY_STAT;
|
||||
s->io_buffer_index = 0;
|
||||
s->io_buffer_size = 0;
|
||||
s->dma_cmd = dma_cmd;
|
||||
|
||||
@ -802,6 +801,7 @@ static void ide_sector_start_dma(IDEState *s, enum ide_dma_cmd dma_cmd)
|
||||
|
||||
void ide_start_dma(IDEState *s, BlockCompletionFunc *cb)
|
||||
{
|
||||
s->io_buffer_index = 0;
|
||||
s->bus->retry_unit = s->unit;
|
||||
s->bus->retry_sector_num = ide_get_sector(s);
|
||||
s->bus->retry_nsector = s->nsector;
|
||||
@ -2341,7 +2341,6 @@ static void ide_restart_dma(IDEState *s, enum ide_dma_cmd dma_cmd)
|
||||
ide_set_sector(s, s->bus->retry_sector_num);
|
||||
s->nsector = s->bus->retry_nsector;
|
||||
s->bus->dma->ops->restart_dma(s->bus->dma);
|
||||
s->io_buffer_index = 0;
|
||||
s->io_buffer_size = 0;
|
||||
s->dma_cmd = dma_cmd;
|
||||
ide_start_dma(s, ide_dma_cb);
|
||||
|
Loading…
Reference in New Issue
Block a user