diff options
| author | Gerd Hoffmann <kraxel@redhat.com> | 2010-03-10 17:30:29 +0100 |
|---|---|---|
| committer | Aurelien Jarno <aurelien@aurel32.net> | 2010-03-13 12:14:16 +0100 |
| commit | 995bf0ca57e52f4991d7f90c7eb2bbf7bc3f3c44 (patch) | |
| tree | cc534fe208c24d1d87bd024f0c6f0361ac25faa9 /hw/fdc.c | |
| parent | 990caaf19c73d6e82c78bfd144a403c35525085a (diff) | |
| download | focaccia-qemu-995bf0ca57e52f4991d7f90c7eb2bbf7bc3f3c44.tar.gz focaccia-qemu-995bf0ca57e52f4991d7f90c7eb2bbf7bc3f3c44.zip | |
fdc: fix drive property handling.
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. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'hw/fdc.c')
| -rw-r--r-- | hw/fdc.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/hw/fdc.c b/hw/fdc.c index eb39e307d4..42b6d7d9c2 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; |