43fe83
From 7d759a3c11fad02795b6ef9cdc091356353d8492 Mon Sep 17 00:00:00 2001
43fe83
Message-Id: <7d759a3c11fad02795b6ef9cdc091356353d8492.1380703761.git.jdenemar@redhat.com>
43fe83
From: Laine Stump <laine@laine.org>
43fe83
Date: Fri, 27 Sep 2013 05:19:40 -0600
43fe83
Subject: [PATCH] qemu: eliminate redundant if clauses in qemuCollectPCIAddress
43fe83
43fe83
Replace them with switch cases. This will make it more efficient when
43fe83
we add exceptions for more controller types, and other device types.
43fe83
43fe83
This is a prerequisite for patches to resolve:
43fe83
43fe83
   https://bugzilla.redhat.com/show_bug.cgi?id=1003983
43fe83
43fe83
(cherry picked from commit fbd9be484c3b1891412e9409d0133a07bbc3fc2b)
43fe83
43fe83
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
43fe83
---
43fe83
 src/qemu/qemu_command.c | 57 +++++++++++++++++++++++++++----------------------
43fe83
 1 file changed, 32 insertions(+), 25 deletions(-)
43fe83
43fe83
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
43fe83
index d596f09..85eedd5 100644
43fe83
--- a/src/qemu/qemu_command.c
43fe83
+++ b/src/qemu/qemu_command.c
43fe83
@@ -1689,37 +1689,44 @@ qemuCollectPCIAddress(virDomainDefPtr def ATTRIBUTE_UNUSED,
43fe83
     /* Change flags according to differing requirements of different
43fe83
      * devices.
43fe83
      */
43fe83
-    if (device->type == VIR_DOMAIN_DEVICE_CONTROLLER &&
43fe83
-        device->data.controller->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI) {
43fe83
-        switch (device->data.controller->model) {
43fe83
-        case VIR_DOMAIN_CONTROLLER_MODEL_PCI_BRIDGE:
43fe83
-            /* pci-bridge needs a PCI slot, but it isn't
43fe83
-             * hot-pluggable, so it doesn't need a hot-pluggable slot.
43fe83
-             */
43fe83
-            flags = QEMU_PCI_CONNECT_TYPE_PCI;
43fe83
+    switch (device->type) {
43fe83
+    case VIR_DOMAIN_DEVICE_CONTROLLER:
43fe83
+        switch (device->data.controller->type) {
43fe83
+        case  VIR_DOMAIN_CONTROLLER_TYPE_PCI:
43fe83
+            switch (device->data.controller->model) {
43fe83
+            case VIR_DOMAIN_CONTROLLER_MODEL_PCI_BRIDGE:
43fe83
+                /* pci-bridge needs a PCI slot, but it isn't
43fe83
+                 * hot-pluggable, so it doesn't need a hot-pluggable slot.
43fe83
+                 */
43fe83
+                flags = QEMU_PCI_CONNECT_TYPE_PCI;
43fe83
+                break;
43fe83
+            case VIR_DOMAIN_CONTROLLER_MODEL_DMI_TO_PCI_BRIDGE:
43fe83
+                /* pci-bridge needs a PCIe slot, but it isn't
43fe83
+                 * hot-pluggable, so it doesn't need a hot-pluggable slot.
43fe83
+                 */
43fe83
+                flags = QEMU_PCI_CONNECT_TYPE_PCIE;
43fe83
+                break;
43fe83
+            default:
43fe83
+                break;
43fe83
+            }
43fe83
             break;
43fe83
-        case VIR_DOMAIN_CONTROLLER_MODEL_DMI_TO_PCI_BRIDGE:
43fe83
-            /* pci-bridge needs a PCIe slot, but it isn't
43fe83
-             * hot-pluggable, so it doesn't need a hot-pluggable slot.
43fe83
+
43fe83
+        case VIR_DOMAIN_CONTROLLER_TYPE_SATA:
43fe83
+            /* SATA controllers aren't hot-plugged, and can be put in
43fe83
+             * either a PCI or PCIe slot
43fe83
              */
43fe83
-            flags = QEMU_PCI_CONNECT_TYPE_PCIE;
43fe83
-            break;
43fe83
-        default:
43fe83
+            flags = QEMU_PCI_CONNECT_TYPE_PCI | QEMU_PCI_CONNECT_TYPE_PCIE;
43fe83
             break;
43fe83
         }
43fe83
-    }
43fe83
-    /* SATA controllers aren't hot-plugged, and can be put in either a
43fe83
-     * PCI or PCIe slot
43fe83
-     */
43fe83
-    if (device->type == VIR_DOMAIN_DEVICE_CONTROLLER &&
43fe83
-        device->data.controller->type == VIR_DOMAIN_CONTROLLER_TYPE_SATA)
43fe83
-        flags = QEMU_PCI_CONNECT_TYPE_PCI | QEMU_PCI_CONNECT_TYPE_PCIE;
43fe83
+        break;
43fe83
 
43fe83
-    /* video cards aren't hot-plugged, and can be put in either a PCI
43fe83
-     * or PCIe slot
43fe83
-     */
43fe83
-    if (device->type == VIR_DOMAIN_DEVICE_VIDEO)
43fe83
+    case VIR_DOMAIN_DEVICE_VIDEO:
43fe83
+        /* video cards aren't hot-plugged, and can be put in either a
43fe83
+         * PCI or PCIe slot
43fe83
+         */
43fe83
         flags = QEMU_PCI_CONNECT_TYPE_PCI | QEMU_PCI_CONNECT_TYPE_PCIE;
43fe83
+        break;
43fe83
+    }
43fe83
 
43fe83
     /* Ignore implicit controllers on slot 0:0:1.0:
43fe83
      * implicit IDE controller on 0:0:1.1 (no qemu command line)
43fe83
-- 
43fe83
1.8.3.2
43fe83