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:
Paolo Bonzini 2015-02-23 11:18:00 -05:00 committed by Kevin Wolf
parent d12b9ff2a4
commit c71c06d437
2 changed files with 2 additions and 4 deletions

View File

@ -252,7 +252,6 @@ static void ide_atapi_cmd_reply(IDEState *s, int size, int max_size)
s->packet_transfer_size = size; s->packet_transfer_size = size;
s->io_buffer_size = size; /* dma: send the reply data as one chunk */ s->io_buffer_size = size; /* dma: send the reply data as one chunk */
s->elementary_transfer_size = 0; s->elementary_transfer_size = 0;
s->io_buffer_index = 0;
if (s->atapi_dma) { if (s->atapi_dma) {
block_acct_start(blk_get_stats(s->blk), &s->acct, size, 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); ide_start_dma(s, ide_atapi_cmd_read_dma_cb);
} else { } else {
s->status = READY_STAT | SEEK_STAT; s->status = READY_STAT | SEEK_STAT;
s->io_buffer_index = 0;
ide_atapi_cmd_reply_end(s); 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->lba = lba;
s->packet_transfer_size = nb_sectors * sector_size; s->packet_transfer_size = nb_sectors * sector_size;
s->io_buffer_index = 0;
s->io_buffer_size = 0; s->io_buffer_size = 0;
s->cd_sector_size = sector_size; s->cd_sector_size = sector_size;

View File

@ -780,7 +780,6 @@ eot:
static void ide_sector_start_dma(IDEState *s, enum ide_dma_cmd dma_cmd) 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->status = READY_STAT | SEEK_STAT | DRQ_STAT | BUSY_STAT;
s->io_buffer_index = 0;
s->io_buffer_size = 0; s->io_buffer_size = 0;
s->dma_cmd = dma_cmd; 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) void ide_start_dma(IDEState *s, BlockCompletionFunc *cb)
{ {
s->io_buffer_index = 0;
s->bus->retry_unit = s->unit; s->bus->retry_unit = s->unit;
s->bus->retry_sector_num = ide_get_sector(s); s->bus->retry_sector_num = ide_get_sector(s);
s->bus->retry_nsector = s->nsector; 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); ide_set_sector(s, s->bus->retry_sector_num);
s->nsector = s->bus->retry_nsector; s->nsector = s->bus->retry_nsector;
s->bus->dma->ops->restart_dma(s->bus->dma); s->bus->dma->ops->restart_dma(s->bus->dma);
s->io_buffer_index = 0;
s->io_buffer_size = 0; s->io_buffer_size = 0;
s->dma_cmd = dma_cmd; s->dma_cmd = dma_cmd;
ide_start_dma(s, ide_dma_cb); ide_start_dma(s, ide_dma_cb);