On 01/25/2018 10:23 AM, Erik Skultety wrote: > This patch drops the capability matching redundancy by simply converting > the string input to our internal types which are then in turn used for > the actual capability matching. > > Signed-off-by: Erik Skultety <eskultet@xxxxxxxxxx> > --- > src/conf/virnodedeviceobj.c | 50 +-------------------------------------------- > 1 file changed, 1 insertion(+), 49 deletions(-) > > diff --git a/src/conf/virnodedeviceobj.c b/src/conf/virnodedeviceobj.c > index ccad59a4b..5360df805 100644 > --- a/src/conf/virnodedeviceobj.c > +++ b/src/conf/virnodedeviceobj.c > @@ -128,55 +128,7 @@ static bool > virNodeDeviceObjHasCapStr(const virNodeDeviceObj *obj, > const char *cap) > { > - virNodeDevCapsDefPtr caps = obj->def->caps; > - const char *fc_host_cap = > - virNodeDevCapTypeToString(VIR_NODE_DEV_CAP_FC_HOST); > - const char *vports_cap = > - virNodeDevCapTypeToString(VIR_NODE_DEV_CAP_VPORTS); > - const char *mdev_types = > - virNodeDevCapTypeToString(VIR_NODE_DEV_CAP_MDEV_TYPES); > - > - while (caps) { > - if (STREQ(cap, virNodeDevCapTypeToString(caps->data.type))) { > - return true; > - } 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 true; > - 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 true; > - 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; > - } > - return false; > + return virNodeDeviceObjHasCap(obj, virNodeDevCapTypeFromString(cap)); I wonder if we should check for the TypeFromString() conversion rather than pass it to the other function directly. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list