Revision a62eaa26 hw/ide/core.c
b/hw/ide/core.c | ||
---|---|---|
568 | 568 |
qemu_sglist_destroy(&s->sg); |
569 | 569 |
} |
570 | 570 |
|
571 |
static void ide_async_cmd_done(IDEState *s) |
|
572 |
{ |
|
573 |
if (s->bus->dma->ops->async_cmd_done) { |
|
574 |
s->bus->dma->ops->async_cmd_done(s->bus->dma); |
|
575 |
} |
|
576 |
} |
|
577 |
|
|
571 | 578 |
void ide_set_inactive(IDEState *s) |
572 | 579 |
{ |
573 | 580 |
s->bus->dma->aiocb = NULL; |
574 | 581 |
s->bus->dma->ops->set_inactive(s->bus->dma); |
582 |
ide_async_cmd_done(s); |
|
575 | 583 |
} |
576 | 584 |
|
577 | 585 |
void ide_dma_error(IDEState *s) |
... | ... | |
804 | 812 |
|
805 | 813 |
bdrv_acct_done(s->bs, &s->acct); |
806 | 814 |
s->status = READY_STAT | SEEK_STAT; |
815 |
ide_async_cmd_done(s); |
|
807 | 816 |
ide_set_irq(s->bus); |
808 | 817 |
} |
809 | 818 |
|
Also available in: Unified diff