From: Gerd Hoffmann Date: Wed, 10 Mar 2010 16:30:29 +0000 (+0100) Subject: fdc: fix drive property handling. X-Git-Tag: pull-nvme-20200902~12417 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=995bf0ca57e52f4991d7f90c7eb2bbf7bc3f3c44;p=qemu-nvme.git 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 Signed-off-by: Aurelien Jarno --- 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;