mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 06:05:27 +00:00
pci: Fix virPCIGetPhysicalFunction()'s callers
Commit c8b1a83605
changed the function, making it
impossible for callers to be able to tell whether a
non-negative return value means "physical function
address found and parsed correctly" or "couldn't find
corresponding physical function".
The important difference between the two being that,
in the latter case, the returned pointer is NULL and
should never, ever be dereferenced.
In order to cope with these changes, the callers
have to be updated.
This commit is contained in:
parent
063da39376
commit
fc9ba9d574
@ -154,19 +154,25 @@ nodeDeviceSysfsGetPCISRIOVCaps(const char *sysfsPath,
|
||||
data->pci_dev.flags &= ~VIR_NODE_DEV_CAP_FLAG_PCI_VIRTUAL_FUNCTION;
|
||||
data->pci_dev.flags &= ~VIR_NODE_DEV_CAP_FLAG_PCI_PHYSICAL_FUNCTION;
|
||||
|
||||
if (!virPCIGetPhysicalFunction(sysfsPath, &data->pci_dev.physical_function))
|
||||
ret = virPCIGetPhysicalFunction(sysfsPath,
|
||||
&data->pci_dev.physical_function);
|
||||
if (ret < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (data->pci_dev.physical_function)
|
||||
data->pci_dev.flags |= VIR_NODE_DEV_CAP_FLAG_PCI_PHYSICAL_FUNCTION;
|
||||
|
||||
ret = virPCIGetVirtualFunctions(sysfsPath, &data->pci_dev.virtual_functions,
|
||||
&data->pci_dev.num_virtual_functions,
|
||||
&data->pci_dev.max_virtual_functions);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
goto cleanup;
|
||||
|
||||
if (data->pci_dev.num_virtual_functions > 0 ||
|
||||
data->pci_dev.max_virtual_functions > 0)
|
||||
data->pci_dev.flags |= VIR_NODE_DEV_CAP_FLAG_PCI_VIRTUAL_FUNCTION;
|
||||
|
||||
cleanup:
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -2732,6 +2732,9 @@ virPCIGetVirtualFunctionInfo(const char *vf_sysfs_device_path,
|
||||
if (virPCIGetPhysicalFunction(vf_sysfs_device_path, &pf_config_address) < 0)
|
||||
return ret;
|
||||
|
||||
if (!pf_config_address)
|
||||
return ret;
|
||||
|
||||
if (virPCIDeviceAddressGetSysfsFile(pf_config_address,
|
||||
&pf_sysfs_device_path) < 0) {
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user