From 4a6435639781214a14f3c6054955e5ef16298d72 Mon Sep 17 00:00:00 2001 From: Blue Swirl Date: Sat, 7 Nov 2009 14:13:05 +0000 Subject: IDE: Fix reset handling Problem: x86 systems could not survive a few system_resets. Clear most of IDE state when reset. Implement the missing reset handlers. Signed-off-by: Blue Swirl --- hw/ide/cmd646.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'hw/ide/cmd646.c') diff --git a/hw/ide/cmd646.c b/hw/ide/cmd646.c index 45e2cdb9a5..b2a3e434b3 100644 --- a/hw/ide/cmd646.c +++ b/hw/ide/cmd646.c @@ -193,8 +193,10 @@ static void cmd646_reset(void *opaque) PCIIDEState *d = opaque; unsigned int i; - for (i = 0; i < 2; i++) - ide_dma_cancel(&d->bmdma[i]); + for (i = 0; i < 2; i++) { + ide_bus_reset(&d->bus[i]); + ide_dma_reset(&d->bmdma[i]); + } } /* CMD646 PCI IDE controller */ -- cgit v1.2.1