virNetDevGetVirtualFunctionInfo(const char *vfname, char **pfname,
int *vf)
{
- char *pf_sysfs_path = NULL, *vf_sysfs_path = NULL;
int ret = -1;
*pfname = NULL;
if (virNetDevGetPhysicalFunction(vfname, pfname) < 0)
- return ret;
-
- if (virNetDevSysfsFile(&pf_sysfs_path, *pfname, "device") < 0)
- goto cleanup;
+ return -1;
- if (virNetDevSysfsFile(&vf_sysfs_path, vfname, "device") < 0)
+ if (virNetDevGetVirtualFunctionIndex(*pfname, vfname, vf) < 0)
goto cleanup;
- ret = virPCIGetVirtualFunctionIndex(pf_sysfs_path, vf_sysfs_path, vf);
-
+ ret = 0;
cleanup:
if (ret < 0)
VIR_FREE(*pfname);
-
- VIR_FREE(vf_sysfs_path);
- VIR_FREE(pf_sysfs_path);
-
return ret;
}
* it to PF + VFname
*/
- if (virNetDevGetPhysicalFunction(linkdev, &pfDevOrig) < 0)
+ if (virNetDevGetVirtualFunctionInfo(linkdev, &pfDevOrig, &vf) < 0)
goto cleanup;
-
pfDevName = pfDevOrig;
-
- if (virNetDevGetVirtualFunctionIndex(pfDevName, linkdev, &vf) < 0)
- goto cleanup;
}
if (pfDevName) {
* it to PF + VFname
*/
- if (virNetDevGetPhysicalFunction(linkdev, &pfDevOrig) < 0)
+ if (virNetDevGetVirtualFunctionInfo(linkdev, &pfDevOrig, &vf) < 0)
goto cleanup;
-
pfDevName = pfDevOrig;
-
- if (virNetDevGetVirtualFunctionIndex(pfDevName, linkdev, &vf) < 0)
- goto cleanup;
}
/* if there is a PF, it's now in pfDevName, and linkdev is either
* it to PF + VFname
*/
- if (virNetDevGetPhysicalFunction(linkdev, &pfDevOrig) < 0)
+ if (virNetDevGetVirtualFunctionInfo(linkdev, &pfDevOrig, &vf))
goto cleanup;
-
pfDevName = pfDevOrig;
-
- if (virNetDevGetVirtualFunctionIndex(pfDevName, linkdev, &vf) < 0)
- goto cleanup;
}