]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
nodedev: Use switch for virNodeDeviceObjHasCap and virNodeDeviceCapMatch
authorJohn Ferlan <jferlan@redhat.com>
Thu, 25 May 2017 19:43:45 +0000 (15:43 -0400)
committerJohn Ferlan <jferlan@redhat.com>
Sat, 3 Jun 2017 12:34:34 +0000 (08:34 -0400)
In order to ensure that whenever something is added to virNodeDevCapType
that both functions are considered for processing of a new capability,
change the if-then-else construct into a switch statement.

Signed-off-by: John Ferlan <jferlan@redhat.com>
src/conf/virnodedeviceobj.c

index 65c776eceaeb965900e24aa071445033fadf9a56..12c146f0931accf76413b8306e12deb6e0f2f8e9 100644 (file)
@@ -48,19 +48,39 @@ virNodeDeviceObjHasCap(const virNodeDeviceObj *dev,
     while (caps) {
         if (STREQ(cap, virNodeDevCapTypeToString(caps->data.type))) {
             return 1;
-        } else if (caps->data.type == VIR_NODE_DEV_CAP_SCSI_HOST) {
-            if ((STREQ(cap, fc_host_cap) &&
-                (caps->data.scsi_host.flags &
-                 VIR_NODE_DEV_CAP_FLAG_HBA_FC_HOST)) ||
-                (STREQ(cap, vports_cap) &&
-                (caps->data.scsi_host.flags &
-                 VIR_NODE_DEV_CAP_FLAG_HBA_VPORT_OPS)))
-                return 1;
-        } else if (caps->data.type == VIR_NODE_DEV_CAP_PCI_DEV) {
-            if ((STREQ(cap, mdev_types)) &&
-                (caps->data.pci_dev.flags &
-                 VIR_NODE_DEV_CAP_FLAG_PCI_MDEV))
-                return 1;
+        } else {
+            switch (caps->data.type) {
+            case VIR_NODE_DEV_CAP_PCI_DEV:
+                if ((STREQ(cap, mdev_types)) &&
+                    (caps->data.pci_dev.flags & VIR_NODE_DEV_CAP_FLAG_PCI_MDEV))
+                    return 1;
+                break;
+
+            case VIR_NODE_DEV_CAP_SCSI_HOST:
+                if ((STREQ(cap, fc_host_cap) &&
+                    (caps->data.scsi_host.flags & VIR_NODE_DEV_CAP_FLAG_HBA_FC_HOST)) ||
+                    (STREQ(cap, vports_cap) &&
+                    (caps->data.scsi_host.flags & VIR_NODE_DEV_CAP_FLAG_HBA_VPORT_OPS)))
+                    return 1;
+                break;
+
+            case VIR_NODE_DEV_CAP_SYSTEM:
+            case VIR_NODE_DEV_CAP_USB_DEV:
+            case VIR_NODE_DEV_CAP_USB_INTERFACE:
+            case VIR_NODE_DEV_CAP_NET:
+            case VIR_NODE_DEV_CAP_SCSI_TARGET:
+            case VIR_NODE_DEV_CAP_SCSI:
+            case VIR_NODE_DEV_CAP_STORAGE:
+            case VIR_NODE_DEV_CAP_FC_HOST:
+            case VIR_NODE_DEV_CAP_VPORTS:
+            case VIR_NODE_DEV_CAP_SCSI_GENERIC:
+            case VIR_NODE_DEV_CAP_DRM:
+            case VIR_NODE_DEV_CAP_MDEV_TYPES:
+            case VIR_NODE_DEV_CAP_MDEV:
+            case VIR_NODE_DEV_CAP_CCW_DEV:
+            case VIR_NODE_DEV_CAP_LAST:
+                break;
+            }
         }
 
         caps = caps->next;
@@ -468,23 +488,39 @@ virNodeDeviceCapMatch(virNodeDeviceObjPtr devobj,
         if (type == cap->data.type)
             return true;
 
-        if (cap->data.type == VIR_NODE_DEV_CAP_SCSI_HOST) {
+        switch (cap->data.type) {
+        case VIR_NODE_DEV_CAP_PCI_DEV:
+            if (type == VIR_NODE_DEV_CAP_MDEV_TYPES &&
+                (cap->data.pci_dev.flags & VIR_NODE_DEV_CAP_FLAG_PCI_MDEV))
+                return true;
+            break;
+
+        case VIR_NODE_DEV_CAP_SCSI_HOST:
             if (type == VIR_NODE_DEV_CAP_FC_HOST &&
-                (cap->data.scsi_host.flags &
-                 VIR_NODE_DEV_CAP_FLAG_HBA_FC_HOST))
+                (cap->data.scsi_host.flags & VIR_NODE_DEV_CAP_FLAG_HBA_FC_HOST))
                 return true;
 
             if (type == VIR_NODE_DEV_CAP_VPORTS &&
-                (cap->data.scsi_host.flags &
-                 VIR_NODE_DEV_CAP_FLAG_HBA_VPORT_OPS))
+                (cap->data.scsi_host.flags & VIR_NODE_DEV_CAP_FLAG_HBA_VPORT_OPS))
                 return true;
-        }
+            break;
 
-        if (cap->data.type == VIR_NODE_DEV_CAP_PCI_DEV) {
-            if (type == VIR_NODE_DEV_CAP_MDEV_TYPES &&
-                (cap->data.pci_dev.flags &
-                 VIR_NODE_DEV_CAP_FLAG_PCI_MDEV))
-                return true;
+        case VIR_NODE_DEV_CAP_SYSTEM:
+        case VIR_NODE_DEV_CAP_USB_DEV:
+        case VIR_NODE_DEV_CAP_USB_INTERFACE:
+        case VIR_NODE_DEV_CAP_NET:
+        case VIR_NODE_DEV_CAP_SCSI_TARGET:
+        case VIR_NODE_DEV_CAP_SCSI:
+        case VIR_NODE_DEV_CAP_STORAGE:
+        case VIR_NODE_DEV_CAP_FC_HOST:
+        case VIR_NODE_DEV_CAP_VPORTS:
+        case VIR_NODE_DEV_CAP_SCSI_GENERIC:
+        case VIR_NODE_DEV_CAP_DRM:
+        case VIR_NODE_DEV_CAP_MDEV_TYPES:
+        case VIR_NODE_DEV_CAP_MDEV:
+        case VIR_NODE_DEV_CAP_CCW_DEV:
+        case VIR_NODE_DEV_CAP_LAST:
+            break;
         }
     }