Replace the two uses of the withDeviceArg bool in qemuBuildDiskDriveCommandLine and allow this function to be reused in qemuBuildDriveStr. --- src/qemu/qemu_command.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 0bde505..a6cc0c9 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1080,6 +1080,18 @@ qemuCheckFips(void) } +/* Unfortunately it is not possible to use + -device for floppies, or SD + devices. Fortunately, those don't need + static PCI addresses, so we don't really + care that we can't use -device */ +static bool +qemuDiskBusNeedsDeviceArg(int bus) +{ + return bus != VIR_DOMAIN_DISK_BUS_SD; +} + + char * qemuBuildDriveStr(virDomainDiskDefPtr disk, bool bootable, @@ -1904,7 +1916,6 @@ qemuBuildDiskDriveCommandLine(virCommandPtr cmd, char *optstr; unsigned int bootindex = 0; virDomainDiskDefPtr disk = def->disks[i]; - bool withDeviceArg = false; bool deviceFlagMasked = true; /* PowerPC pseries based VMs do not support floppy device */ @@ -1934,14 +1945,7 @@ qemuBuildDiskDriveCommandLine(virCommandPtr cmd, virCommandAddArg(cmd, "-drive"); - /* Unfortunately it is not possible to use - -device for floppies, or SD - devices. Fortunately, those don't need - static PCI addresses, so we don't really - care that we can't use -device */ - if (disk->bus != VIR_DOMAIN_DISK_BUS_SD) { - withDeviceArg = true; - } else { + if (!qemuDiskBusNeedsDeviceArg(disk->bus)) { virQEMUCapsClear(qemuCaps, QEMU_CAPS_DEVICE); deviceFlagMasked = true; } @@ -1960,7 +1964,7 @@ qemuBuildDiskDriveCommandLine(virCommandPtr cmd, else if (disk->info.bootIndex) bootindex = disk->info.bootIndex; - if (withDeviceArg) { + if (qemuDiskBusNeedsDeviceArg(disk->bus)) { if (disk->bus == VIR_DOMAIN_DISK_BUS_FDC) { if (virAsprintf(&optstr, "drive%c=drive-%s", disk->info.addr.drive.unit ? 'B' : 'A', -- 2.7.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list