[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH] Clarify why some controllers don't generate -device string in QEMU driver



The QEMU driver contained code to generate a -device string for piix4-ide, but
wasn't using it. This change removes this string generation. It also adds a
comment explaining why IDE and FDC controllers don't generate -device strings.

The change also generates an error if a sata controller is specified for a QEMU
domain, as this isn't supported.

* src/qemu/qemu_conf.c: Remove VIR_DOMAIN_CONTROLLER_TYPE_IDE handler in
                        qemuBuildControllerDevStr(). Ignore IDE and FDC
                        controllers. Error if SATA controller is discovered. Add
                        comments.
---
 src/qemu/qemu_conf.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index f4a6c08..1c4f326 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -2121,11 +2121,8 @@ qemuBuildControllerDevStr(virDomainControllerDefPtr def)
         virBufferVSprintf(&buf, ",id=scsi%d", def->idx);
         break;
 
+    /* We always get an IDE controller, whether we want it or not. */
     case VIR_DOMAIN_CONTROLLER_TYPE_IDE:
-        virBufferAddLit(&buf, "piix4-ide");
-        virBufferVSprintf(&buf, ",id=ide%d", def->idx);
-        break;
-
     default:
         goto error;
     }
@@ -3141,16 +3138,19 @@ int qemudBuildCommandLine(virConnectPtr conn,
 
     if (qemuCmdFlags & QEMUD_CMD_FLAG_DEVICE) {
         for (i = 0 ; i < def->ncontrollers ; i++) {
-            char *scsi;
-            if (def->controllers[i]->type != VIR_DOMAIN_CONTROLLER_TYPE_SCSI)
+            /* We don't add an explicit IDE controller because the provided
+             * PIIX4 device already includes one. It isn't possible to remove
+             * the PIIX4. */
+            if (def->controllers[i]->type == VIR_DOMAIN_CONTROLLER_TYPE_IDE)
                 continue;
 
             ADD_ARG_LIT("-device");
 
-            if (!(scsi = qemuBuildControllerDevStr(def->controllers[i])))
+            char *devstr;
+            if (!(devstr = qemuBuildControllerDevStr(def->controllers[i])))
                 goto no_memory;
 
-            ADD_ARG(scsi);
+            ADD_ARG(devstr);
         }
     }
 
-- 
1.6.6


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]