Am 17.03.2012 15:39, schrieb Hervé Poussineau: > This fixes a crash in PReP emulation when using DMA controller to access > floppy drive. > > Signed-off-by: Hervé Poussineau <hpous...@reactos.org>
Reviewed-by: Andreas Färber <afaer...@suse.de> Andreas > --- > hw/i82374.c | 5 ++++- > hw/i82378.c | 5 +++-- > 2 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/hw/i82374.c b/hw/i82374.c > index 67298a3..4a922c3 100644 > --- a/hw/i82374.c > +++ b/hw/i82374.c > @@ -38,6 +38,7 @@ do { fprintf(stderr, "i82374 ERROR: " fmt , ## > __VA_ARGS__); } while (0) > > typedef struct I82374State { > uint8_t commands[8]; > + qemu_irq out; > } I82374State; > > static const VMStateDescription vmstate_i82374 = { > @@ -99,7 +100,7 @@ static uint32_t i82374_read_descriptor(void *opaque, > uint32_t nport) > > static void i82374_init(I82374State *s) > { > - DMA_init(1, NULL); > + DMA_init(1, &s->out); > memset(s->commands, 0, sizeof(s->commands)); > } > > @@ -132,6 +133,8 @@ static int i82374_isa_init(ISADevice *dev) > > i82374_init(s); > > + qdev_init_gpio_out(&dev->qdev, &s->out, 1); > + > return 0; > } > > diff --git a/hw/i82378.c b/hw/i82378.c > index faad1a3..9b11d90 100644 > --- a/hw/i82378.c > +++ b/hw/i82378.c > @@ -170,6 +170,7 @@ static void i82378_init(DeviceState *dev, I82378State *s) > { > ISABus *isabus = DO_UPCAST(ISABus, qbus, qdev_get_child_bus(dev, > "isa.0")); > ISADevice *pit; > + ISADevice *isa; > qemu_irq *out0_irq; > > /* This device has: > @@ -199,8 +200,8 @@ static void i82378_init(DeviceState *dev, I82378State *s) > pcspk_init(isabus, pit); > > /* 2 82C37 (dma) */ > - DMA_init(1, &s->out[1]); > - isa_create_simple(isabus, "i82374"); > + isa = isa_create_simple(isabus, "i82374"); > + qdev_connect_gpio_out(&isa->qdev, 0, s->out[1]); > > /* timer */ > isa_create_simple(isabus, "mc146818rtc"); -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg