Message ID | 1268238629-23164-1-git-send-email-kraxel@redhat.com |
---|---|
State | New |
Headers | show |
On Wed, Mar 10, 2010 at 05:30:29PM +0100, Gerd Hoffmann wrote: > Fix the floppy controller init wrappers to set the drive properties > only in case the DriveInfo pointers passed in are non NULL. This allows > to set the properties using -global. > > [ v2: fix code style issues pointed out by Aurelien Jarno ] > > Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Thanks, applied. > --- > hw/fdc.c | 20 +++++++++++++++----- > 1 files changed, 15 insertions(+), 5 deletions(-) > > diff --git a/hw/fdc.c b/hw/fdc.c > index eb39e30..42b6d7d 100644 > --- a/hw/fdc.c > +++ b/hw/fdc.c > @@ -1860,8 +1860,12 @@ FDCtrl *fdctrl_init_isa(DriveInfo **fds) > ISADevice *dev; > > dev = isa_create("isa-fdc"); > - qdev_prop_set_drive(&dev->qdev, "driveA", fds[0]); > - qdev_prop_set_drive(&dev->qdev, "driveB", fds[1]); > + if (fds[0]) { > + qdev_prop_set_drive(&dev->qdev, "driveA", fds[0]); > + } > + if (fds[1]) { > + qdev_prop_set_drive(&dev->qdev, "driveB", fds[1]); > + } > if (qdev_init(&dev->qdev) < 0) > return NULL; > return &(DO_UPCAST(FDCtrlISABus, busdev, dev)->state); > @@ -1878,8 +1882,12 @@ FDCtrl *fdctrl_init_sysbus(qemu_irq irq, int dma_chann, > sys = DO_UPCAST(FDCtrlSysBus, busdev.qdev, dev); > fdctrl = &sys->state; > fdctrl->dma_chann = dma_chann; /* FIXME */ > - qdev_prop_set_drive(dev, "driveA", fds[0]); > - qdev_prop_set_drive(dev, "driveB", fds[1]); > + if (fds[0]) { > + qdev_prop_set_drive(dev, "driveA", fds[0]); > + } > + if (fds[1]) { > + qdev_prop_set_drive(dev, "driveB", fds[1]); > + } > qdev_init_nofail(dev); > sysbus_connect_irq(&sys->busdev, 0, irq); > sysbus_mmio_map(&sys->busdev, 0, mmio_base); > @@ -1895,7 +1903,9 @@ FDCtrl *sun4m_fdctrl_init(qemu_irq irq, target_phys_addr_t io_base, > FDCtrl *fdctrl; > > dev = qdev_create(NULL, "SUNW,fdtwo"); > - qdev_prop_set_drive(dev, "drive", fds[0]); > + if (fds[0]) { > + qdev_prop_set_drive(dev, "drive", fds[0]); > + } > qdev_init_nofail(dev); > sys = DO_UPCAST(FDCtrlSysBus, busdev.qdev, dev); > fdctrl = &sys->state; > -- > 1.6.6.1 > > > >
diff --git a/hw/fdc.c b/hw/fdc.c index eb39e30..42b6d7d 100644 --- a/hw/fdc.c +++ b/hw/fdc.c @@ -1860,8 +1860,12 @@ FDCtrl *fdctrl_init_isa(DriveInfo **fds) ISADevice *dev; dev = isa_create("isa-fdc"); - qdev_prop_set_drive(&dev->qdev, "driveA", fds[0]); - qdev_prop_set_drive(&dev->qdev, "driveB", fds[1]); + if (fds[0]) { + qdev_prop_set_drive(&dev->qdev, "driveA", fds[0]); + } + if (fds[1]) { + qdev_prop_set_drive(&dev->qdev, "driveB", fds[1]); + } if (qdev_init(&dev->qdev) < 0) return NULL; return &(DO_UPCAST(FDCtrlISABus, busdev, dev)->state); @@ -1878,8 +1882,12 @@ FDCtrl *fdctrl_init_sysbus(qemu_irq irq, int dma_chann, sys = DO_UPCAST(FDCtrlSysBus, busdev.qdev, dev); fdctrl = &sys->state; fdctrl->dma_chann = dma_chann; /* FIXME */ - qdev_prop_set_drive(dev, "driveA", fds[0]); - qdev_prop_set_drive(dev, "driveB", fds[1]); + if (fds[0]) { + qdev_prop_set_drive(dev, "driveA", fds[0]); + } + if (fds[1]) { + qdev_prop_set_drive(dev, "driveB", fds[1]); + } qdev_init_nofail(dev); sysbus_connect_irq(&sys->busdev, 0, irq); sysbus_mmio_map(&sys->busdev, 0, mmio_base); @@ -1895,7 +1903,9 @@ FDCtrl *sun4m_fdctrl_init(qemu_irq irq, target_phys_addr_t io_base, FDCtrl *fdctrl; dev = qdev_create(NULL, "SUNW,fdtwo"); - qdev_prop_set_drive(dev, "drive", fds[0]); + if (fds[0]) { + qdev_prop_set_drive(dev, "drive", fds[0]); + } qdev_init_nofail(dev); sys = DO_UPCAST(FDCtrlSysBus, busdev.qdev, dev); fdctrl = &sys->state;
Fix the floppy controller init wrappers to set the drive properties only in case the DriveInfo pointers passed in are non NULL. This allows to set the properties using -global. [ v2: fix code style issues pointed out by Aurelien Jarno ] Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> --- hw/fdc.c | 20 +++++++++++++++----- 1 files changed, 15 insertions(+), 5 deletions(-)