mirror of https://github.com/xqemu/xqemu.git
ide: stop PIO transfer on errors
This will provide a hook for sending the result of the command via the FIS receive area. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: John Snow <jsnow@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
1f88f77348
commit
08ee9e3368
|
@ -420,6 +420,7 @@ BlockDriverAIOCB *ide_issue_trim(BlockDriverState *bs,
|
||||||
|
|
||||||
static inline void ide_abort_command(IDEState *s)
|
static inline void ide_abort_command(IDEState *s)
|
||||||
{
|
{
|
||||||
|
ide_transfer_stop(s);
|
||||||
s->status = READY_STAT | ERR_STAT;
|
s->status = READY_STAT | ERR_STAT;
|
||||||
s->error = ABRT_ERR;
|
s->error = ABRT_ERR;
|
||||||
}
|
}
|
||||||
|
@ -605,9 +606,7 @@ void ide_set_inactive(IDEState *s, bool more)
|
||||||
|
|
||||||
void ide_dma_error(IDEState *s)
|
void ide_dma_error(IDEState *s)
|
||||||
{
|
{
|
||||||
ide_transfer_stop(s);
|
ide_abort_command(s);
|
||||||
s->error = ABRT_ERR;
|
|
||||||
s->status = READY_STAT | ERR_STAT;
|
|
||||||
ide_set_inactive(s, false);
|
ide_set_inactive(s, false);
|
||||||
ide_set_irq(s->bus);
|
ide_set_irq(s->bus);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue