|
|
c1c534 |
From 60d285eca3ab7003a7ebd03e3610616e0a657942 Mon Sep 17 00:00:00 2001
|
|
|
c1c534 |
Message-Id: <60d285eca3ab7003a7ebd03e3610616e0a657942@dist-git>
|
|
|
c1c534 |
From: Michal Privoznik <mprivozn@redhat.com>
|
|
|
c1c534 |
Date: Mon, 20 Nov 2017 11:08:51 +0100
|
|
|
c1c534 |
Subject: [PATCH] qemuBuildDriveDevStr: Prefer default aliases for IDE bus
|
|
|
c1c534 |
|
|
|
c1c534 |
https://bugzilla.redhat.com/show_bug.cgi?id=1434451
|
|
|
c1c534 |
|
|
|
c1c534 |
When testing user aliases it was discovered that for 440fx
|
|
|
c1c534 |
machine type which has default IDE bus builtin, domain cannot
|
|
|
c1c534 |
start if IDE controller has the user provided alias. This is
|
|
|
c1c534 |
because for 440fx we don't put the IDE controller onto the
|
|
|
c1c534 |
command line (since it is builtin) and therefore any device that
|
|
|
c1c534 |
is plugged onto the bus must use the default alias.
|
|
|
c1c534 |
|
|
|
c1c534 |
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
|
|
c1c534 |
(cherry picked from commit 9324f67a572f9b32f25bc088fb9f34e736edc612)
|
|
|
c1c534 |
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
|
|
c1c534 |
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
|
c1c534 |
---
|
|
|
c1c534 |
src/qemu/qemu_command.c | 14 +++++++++++---
|
|
|
c1c534 |
tests/qemuxml2argvdata/qemuxml2argv-user-aliases.args | 4 ++--
|
|
|
c1c534 |
2 files changed, 13 insertions(+), 5 deletions(-)
|
|
|
c1c534 |
|
|
|
c1c534 |
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
|
|
|
c1c534 |
index aa7079229f..272ef610a3 100644
|
|
|
c1c534 |
--- a/src/qemu/qemu_command.c
|
|
|
c1c534 |
+++ b/src/qemu/qemu_command.c
|
|
|
c1c534 |
@@ -1947,9 +1947,17 @@ qemuBuildDriveDevStr(const virDomainDef *def,
|
|
|
c1c534 |
virBufferAddLit(&opt, "ide-drive");
|
|
|
c1c534 |
}
|
|
|
c1c534 |
|
|
|
c1c534 |
- if (!(contAlias = virDomainControllerAliasFind(def, VIR_DOMAIN_CONTROLLER_TYPE_IDE,
|
|
|
c1c534 |
- disk->info.addr.drive.controller)))
|
|
|
c1c534 |
- goto error;
|
|
|
c1c534 |
+ /* When domain has builtin IDE controller we don't put it onto cmd
|
|
|
c1c534 |
+ * line. Therefore we can't set its alias. In that case, use the
|
|
|
c1c534 |
+ * default one. */
|
|
|
c1c534 |
+ if (qemuDomainHasBuiltinIDE(def)) {
|
|
|
c1c534 |
+ contAlias = "ide";
|
|
|
c1c534 |
+ } else {
|
|
|
c1c534 |
+ if (!(contAlias = virDomainControllerAliasFind(def,
|
|
|
c1c534 |
+ VIR_DOMAIN_CONTROLLER_TYPE_IDE,
|
|
|
c1c534 |
+ disk->info.addr.drive.controller)))
|
|
|
c1c534 |
+ goto error;
|
|
|
c1c534 |
+ }
|
|
|
c1c534 |
virBufferAsprintf(&opt, ",bus=%s.%d,unit=%d",
|
|
|
c1c534 |
contAlias,
|
|
|
c1c534 |
disk->info.addr.drive.bus,
|
|
|
c1c534 |
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-user-aliases.args b/tests/qemuxml2argvdata/qemuxml2argv-user-aliases.args
|
|
|
c1c534 |
index 62fbd567b1..1719c1bc88 100644
|
|
|
c1c534 |
--- a/tests/qemuxml2argvdata/qemuxml2argv-user-aliases.args
|
|
|
c1c534 |
+++ b/tests/qemuxml2argvdata/qemuxml2argv-user-aliases.args
|
|
|
c1c534 |
@@ -44,8 +44,8 @@ id=drive-ua-myEncryptedDisk1 \
|
|
|
c1c534 |
id=ua-myEncryptedDisk1 \
|
|
|
c1c534 |
-drive file=/home/zippy/tmp/install-amd64-minimal-20140619.iso,format=raw,\
|
|
|
c1c534 |
if=none,media=cdrom,id=drive-ua-WhatAnAwesomeCDROM,readonly=on,cache=none \
|
|
|
c1c534 |
--device ide-drive,bus=ua-DoesAnybodyStillUseIDE.1,unit=0,\
|
|
|
c1c534 |
-drive=drive-ua-WhatAnAwesomeCDROM,id=ua-WhatAnAwesomeCDROM \
|
|
|
c1c534 |
+-device ide-drive,bus=ide.1,unit=0,drive=drive-ua-WhatAnAwesomeCDROM,\
|
|
|
c1c534 |
+id=ua-WhatAnAwesomeCDROM \
|
|
|
c1c534 |
-device virtio-net-pci,vlan=0,id=ua-CheckoutThisNIC,mac=52:54:00:d6:c0:0b,\
|
|
|
c1c534 |
bus=pci.0,addr=0x3 \
|
|
|
c1c534 |
-net tap,fd=3,vlan=0,name=hostua-CheckoutThisNIC \
|
|
|
c1c534 |
--
|
|
|
c1c534 |
2.15.0
|
|
|
c1c534 |
|