On 06/06/2018 04:09 PM, John Snow wrote: > From: Paolo Bonzini <pbonz...@redhat.com> > > There is code checking s->end_transfer_func and it was not taught about > ide_transfer_cancel. We can just use ide_transfer_stop because > s->end_transfer_func is only ever called in the DRQ phase. > > ide_transfer_cancel can then be removed, since it would just be > calling ide_transfer_halt. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > Signed-off-by: John Snow <js...@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <f4...@amsat.org> > --- > hw/ide/core.c | 14 ++++---------- > 1 file changed, 4 insertions(+), 10 deletions(-) > > diff --git a/hw/ide/core.c b/hw/ide/core.c > index 54799ea6fb..9c4864ae54 100644 > --- a/hw/ide/core.c > +++ b/hw/ide/core.c > @@ -547,10 +547,9 @@ static void ide_cmd_done(IDEState *s) > } > } > > -static void ide_transfer_halt(IDEState *s, > - void(*end_transfer_func)(IDEState *)) > +static void ide_transfer_halt(IDEState *s) > { > - s->end_transfer_func = end_transfer_func; > + s->end_transfer_func = ide_transfer_stop; > s->data_ptr = s->io_buffer; > s->data_end = s->io_buffer; > s->status &= ~DRQ_STAT; > @@ -558,15 +557,10 @@ static void ide_transfer_halt(IDEState *s, > > void ide_transfer_stop(IDEState *s) > { > - ide_transfer_halt(s, ide_transfer_stop); > + ide_transfer_halt(s); > ide_cmd_done(s); > } > > -static void ide_transfer_cancel(IDEState *s) > -{ > - ide_transfer_halt(s, ide_transfer_cancel); > -} > - > int64_t ide_get_sector(IDEState *s) > { > int64_t sector_num; > @@ -1361,7 +1355,7 @@ static bool cmd_nop(IDEState *s, uint8_t cmd) > static bool cmd_device_reset(IDEState *s, uint8_t cmd) > { > /* Halt PIO (in the DRQ phase), then DMA */ > - ide_transfer_cancel(s); > + ide_transfer_halt(s); > ide_cancel_dma_sync(s); > > /* Reset any PIO commands, reset signature, etc */ >