mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-12 15:52:55 +00:00
macvtap: Fix error return value convention/inconsistencies
- changed some return 1's to return -1 - changed if (rc) error checks to if (rc < 0) - fixed some other minor convention violations I might have missed some. Can fix in another patch or can respin Signed-off-by: Roopa Prabhu <roprabhu@cisco.com> Reported-by: Eric Blake <eblake@redhat.com> Reported-by: Laine Stump <laine@laine.org> Signed-off-by: Eric Blake <eblake@redhat.com>
This commit is contained in:
parent
7e02076624
commit
228a9ec312
@ -2527,7 +2527,7 @@ qemuMigrationVPAssociatePortProfiles(virDomainDefPtr def) {
|
|||||||
virDomainNetGetActualDirectDev(net),
|
virDomainNetGetActualDirectDev(net),
|
||||||
virDomainNetGetActualDirectVirtPortProfile(net),
|
virDomainNetGetActualDirectVirtPortProfile(net),
|
||||||
def->uuid,
|
def->uuid,
|
||||||
VIR_VM_OP_MIGRATE_IN_FINISH) != 0)
|
VIR_VM_OP_MIGRATE_IN_FINISH) < 0)
|
||||||
goto err_exit;
|
goto err_exit;
|
||||||
}
|
}
|
||||||
last_good_net = i;
|
last_good_net = i;
|
||||||
|
@ -1016,7 +1016,7 @@ ifaceMacvtapLinkDump(bool nltarget_kernel ATTRIBUTE_UNUSED,
|
|||||||
* Get the nth parent interface of the given interface. 0 is the interface
|
* Get the nth parent interface of the given interface. 0 is the interface
|
||||||
* itself.
|
* itself.
|
||||||
*
|
*
|
||||||
* Return 0 on success, != 0 otherwise
|
* Return 0 on success, < 0 otherwise
|
||||||
*/
|
*/
|
||||||
#if defined(__linux__) && WITH_MACVTAP
|
#if defined(__linux__) && WITH_MACVTAP
|
||||||
int
|
int
|
||||||
@ -1037,7 +1037,7 @@ ifaceGetNthParent(int ifindex, const char *ifname, unsigned int nthParent,
|
|||||||
|
|
||||||
while (!end && i <= nthParent) {
|
while (!end && i <= nthParent) {
|
||||||
rc = ifaceMacvtapLinkDump(true, ifname, ifindex, tb, &recvbuf, NULL);
|
rc = ifaceMacvtapLinkDump(true, ifname, ifindex, tb, &recvbuf, NULL);
|
||||||
if (rc)
|
if (rc < 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if (tb[IFLA_IFNAME]) {
|
if (tb[IFLA_IFNAME]) {
|
||||||
@ -1244,7 +1244,7 @@ ifaceIsVirtualFunction(const char *ifname)
|
|||||||
char *if_sysfs_device_link = NULL;
|
char *if_sysfs_device_link = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
if (ifaceSysfsFile(&if_sysfs_device_link, ifname, "device"))
|
if (ifaceSysfsFile(&if_sysfs_device_link, ifname, "device") < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
ret = pciDeviceIsVirtualFunction(if_sysfs_device_link);
|
ret = pciDeviceIsVirtualFunction(if_sysfs_device_link);
|
||||||
@ -1272,10 +1272,10 @@ ifaceGetVirtualFunctionIndex(const char *pfname, const char *vfname,
|
|||||||
char *pf_sysfs_device_link = NULL, *vf_sysfs_device_link = NULL;
|
char *pf_sysfs_device_link = NULL, *vf_sysfs_device_link = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
if (ifaceSysfsFile(&pf_sysfs_device_link, pfname, "device"))
|
if (ifaceSysfsFile(&pf_sysfs_device_link, pfname, "device") < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if (ifaceSysfsFile(&vf_sysfs_device_link, vfname, "device")) {
|
if (ifaceSysfsFile(&vf_sysfs_device_link, vfname, "device") < 0) {
|
||||||
VIR_FREE(pf_sysfs_device_link);
|
VIR_FREE(pf_sysfs_device_link);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -1306,7 +1306,7 @@ ifaceGetPhysicalFunction(const char *ifname, char **pfname)
|
|||||||
char *physfn_sysfs_path = NULL;
|
char *physfn_sysfs_path = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
|
|
||||||
if (ifaceSysfsDeviceFile(&physfn_sysfs_path, ifname, "physfn"))
|
if (ifaceSysfsDeviceFile(&physfn_sysfs_path, ifname, "physfn") < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
ret = pciDeviceNetName(physfn_sysfs_path, pfname);
|
ret = pciDeviceNetName(physfn_sysfs_path, pfname);
|
||||||
|
@ -210,8 +210,11 @@ configMacvtapTap(int tapfd, int vnet_hdr)
|
|||||||
rc_on_fail = -1;
|
rc_on_fail = -1;
|
||||||
errmsg = _("cannot clean IFF_VNET_HDR flag on macvtap tap");
|
errmsg = _("cannot clean IFF_VNET_HDR flag on macvtap tap");
|
||||||
} else if ((ifreq.ifr_flags & IFF_VNET_HDR) == 0 && vnet_hdr) {
|
} else if ((ifreq.ifr_flags & IFF_VNET_HDR) == 0 && vnet_hdr) {
|
||||||
if (ioctl(tapfd, TUNGETFEATURES, &features) != 0)
|
if (ioctl(tapfd, TUNGETFEATURES, &features) < 0) {
|
||||||
return errno;
|
virReportSystemError(errno, "%s",
|
||||||
|
_("cannot get feature flags on macvtap tap"));
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
if ((features & IFF_VNET_HDR)) {
|
if ((features & IFF_VNET_HDR)) {
|
||||||
new_flags = ifreq.ifr_flags | IFF_VNET_HDR;
|
new_flags = ifreq.ifr_flags | IFF_VNET_HDR;
|
||||||
errmsg = _("cannot set IFF_VNET_HDR flag on macvtap tap");
|
errmsg = _("cannot set IFF_VNET_HDR flag on macvtap tap");
|
||||||
@ -292,7 +295,7 @@ openMacvtapTap(const char *tgifname,
|
|||||||
* emulate their switch in firmware.
|
* emulate their switch in firmware.
|
||||||
*/
|
*/
|
||||||
if (mode == VIR_MACVTAP_MODE_PASSTHRU) {
|
if (mode == VIR_MACVTAP_MODE_PASSTHRU) {
|
||||||
if (ifaceReplaceMacAddress(macaddress, linkdev, stateDir) != 0) {
|
if (ifaceReplaceMacAddress(macaddress, linkdev, stateDir) < 0) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -335,7 +338,7 @@ create_name:
|
|||||||
macaddress,
|
macaddress,
|
||||||
linkdev,
|
linkdev,
|
||||||
virtPortProfile,
|
virtPortProfile,
|
||||||
vmuuid, vmOp) != 0) {
|
vmuuid, vmOp) < 0) {
|
||||||
rc = -1;
|
rc = -1;
|
||||||
goto link_del_exit;
|
goto link_del_exit;
|
||||||
}
|
}
|
||||||
@ -352,7 +355,6 @@ create_name:
|
|||||||
}
|
}
|
||||||
|
|
||||||
rc = openTap(cr_ifname, 10);
|
rc = openTap(cr_ifname, 10);
|
||||||
|
|
||||||
if (rc >= 0) {
|
if (rc >= 0) {
|
||||||
if (configMacvtapTap(rc, vnet_hdr) < 0) {
|
if (configMacvtapTap(rc, vnet_hdr) < 0) {
|
||||||
VIR_FORCE_CLOSE(rc); /* sets rc to -1 */
|
VIR_FORCE_CLOSE(rc); /* sets rc to -1 */
|
||||||
@ -471,7 +473,7 @@ getLldpadPid(void) {
|
|||||||
* status: pointer to a uint16 where the status will be written into
|
* status: pointer to a uint16 where the status will be written into
|
||||||
*
|
*
|
||||||
* Get the status from the IFLA_PORT_RESPONSE field; Returns 0 in
|
* Get the status from the IFLA_PORT_RESPONSE field; Returns 0 in
|
||||||
* case of success, != 0 otherwise with error having been reported
|
* case of success, < 0 otherwise with error having been reported
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
getPortProfileStatus(struct nlattr **tb, int32_t vf,
|
getPortProfileStatus(struct nlattr **tb, int32_t vf,
|
||||||
@ -480,7 +482,7 @@ getPortProfileStatus(struct nlattr **tb, int32_t vf,
|
|||||||
bool is8021Qbg,
|
bool is8021Qbg,
|
||||||
uint16_t *status)
|
uint16_t *status)
|
||||||
{
|
{
|
||||||
int rc = 1;
|
int rc = -1;
|
||||||
const char *msg = NULL;
|
const char *msg = NULL;
|
||||||
struct nlattr *tb_port[IFLA_PORT_MAX + 1] = { NULL, };
|
struct nlattr *tb_port[IFLA_PORT_MAX + 1] = { NULL, };
|
||||||
|
|
||||||
@ -572,7 +574,7 @@ doPortProfileOpSetLink(bool nltarget_kernel,
|
|||||||
int32_t vf,
|
int32_t vf,
|
||||||
uint8_t op)
|
uint8_t op)
|
||||||
{
|
{
|
||||||
int rc = 0;
|
int rc = -1;
|
||||||
struct nlmsghdr *resp;
|
struct nlmsghdr *resp;
|
||||||
struct nlmsgerr *err;
|
struct nlmsgerr *err;
|
||||||
struct ifinfomsg ifinfo = {
|
struct ifinfomsg ifinfo = {
|
||||||
@ -588,7 +590,7 @@ doPortProfileOpSetLink(bool nltarget_kernel,
|
|||||||
nl_msg = nlmsg_alloc_simple(RTM_SETLINK, NLM_F_REQUEST);
|
nl_msg = nlmsg_alloc_simple(RTM_SETLINK, NLM_F_REQUEST);
|
||||||
if (!nl_msg) {
|
if (!nl_msg) {
|
||||||
virReportOOMError();
|
virReportOOMError();
|
||||||
return -1;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nlmsg_append(nl_msg, &ifinfo, sizeof(ifinfo), NLMSG_ALIGNTO) < 0)
|
if (nlmsg_append(nl_msg, &ifinfo, sizeof(ifinfo), NLMSG_ALIGNTO) < 0)
|
||||||
@ -690,16 +692,12 @@ doPortProfileOpSetLink(bool nltarget_kernel,
|
|||||||
|
|
||||||
if (!nltarget_kernel) {
|
if (!nltarget_kernel) {
|
||||||
pid = getLldpadPid();
|
pid = getLldpadPid();
|
||||||
if (pid == 0) {
|
if (pid == 0)
|
||||||
rc = -1;
|
|
||||||
goto err_exit;
|
goto err_exit;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nlComm(nl_msg, &recvbuf, &recvbuflen, pid) < 0) {
|
if (nlComm(nl_msg, &recvbuf, &recvbuflen, pid) < 0)
|
||||||
rc = -1;
|
|
||||||
goto err_exit;
|
goto err_exit;
|
||||||
}
|
|
||||||
|
|
||||||
if (recvbuflen < NLMSG_LENGTH(0) || recvbuf == NULL)
|
if (recvbuflen < NLMSG_LENGTH(0) || recvbuf == NULL)
|
||||||
goto malformed_resp;
|
goto malformed_resp;
|
||||||
@ -716,7 +714,7 @@ doPortProfileOpSetLink(bool nltarget_kernel,
|
|||||||
virReportSystemError(-err->error,
|
virReportSystemError(-err->error,
|
||||||
_("error during virtual port configuration of ifindex %d"),
|
_("error during virtual port configuration of ifindex %d"),
|
||||||
ifindex);
|
ifindex);
|
||||||
rc = -1;
|
goto err_exit;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -727,6 +725,8 @@ doPortProfileOpSetLink(bool nltarget_kernel,
|
|||||||
goto malformed_resp;
|
goto malformed_resp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rc = 0;
|
||||||
|
|
||||||
err_exit:
|
err_exit:
|
||||||
nlmsg_free(nl_msg);
|
nlmsg_free(nl_msg);
|
||||||
|
|
||||||
@ -740,17 +740,18 @@ malformed_resp:
|
|||||||
macvtapError(VIR_ERR_INTERNAL_ERROR, "%s",
|
macvtapError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("malformed netlink response message"));
|
_("malformed netlink response message"));
|
||||||
VIR_FREE(recvbuf);
|
VIR_FREE(recvbuf);
|
||||||
return -1;
|
return rc;
|
||||||
|
|
||||||
buffer_too_small:
|
buffer_too_small:
|
||||||
nlmsg_free(nl_msg);
|
nlmsg_free(nl_msg);
|
||||||
|
|
||||||
macvtapError(VIR_ERR_INTERNAL_ERROR, "%s",
|
macvtapError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("allocated netlink buffer is too small"));
|
_("allocated netlink buffer is too small"));
|
||||||
return -1;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Returns 0 on success, -1 on general failure, and -2 on timeout */
|
||||||
static int
|
static int
|
||||||
doPortProfileOpCommon(bool nltarget_kernel,
|
doPortProfileOpCommon(bool nltarget_kernel,
|
||||||
const char *ifname, int ifindex,
|
const char *ifname, int ifindex,
|
||||||
@ -780,8 +781,7 @@ doPortProfileOpCommon(bool nltarget_kernel,
|
|||||||
hostUUID,
|
hostUUID,
|
||||||
vf,
|
vf,
|
||||||
op);
|
op);
|
||||||
|
if (rc < 0) {
|
||||||
if (rc) {
|
|
||||||
macvtapError(VIR_ERR_INTERNAL_ERROR, "%s",
|
macvtapError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("sending of PortProfileRequest failed."));
|
_("sending of PortProfileRequest failed."));
|
||||||
return rc;
|
return rc;
|
||||||
@ -790,11 +790,12 @@ doPortProfileOpCommon(bool nltarget_kernel,
|
|||||||
while (--repeats >= 0) {
|
while (--repeats >= 0) {
|
||||||
rc = ifaceMacvtapLinkDump(nltarget_kernel, NULL, ifindex, tb,
|
rc = ifaceMacvtapLinkDump(nltarget_kernel, NULL, ifindex, tb,
|
||||||
&recvbuf, getLldpadPid);
|
&recvbuf, getLldpadPid);
|
||||||
if (rc)
|
if (rc < 0)
|
||||||
goto err_exit;
|
goto err_exit;
|
||||||
|
|
||||||
rc = getPortProfileStatus(tb, vf, instanceId, nltarget_kernel,
|
rc = getPortProfileStatus(tb, vf, instanceId, nltarget_kernel,
|
||||||
is8021Qbg, &status);
|
is8021Qbg, &status);
|
||||||
if (rc)
|
if (rc < 0)
|
||||||
goto err_exit;
|
goto err_exit;
|
||||||
if (status == PORT_PROFILE_RESPONSE_SUCCESS ||
|
if (status == PORT_PROFILE_RESPONSE_SUCCESS ||
|
||||||
status == PORT_VDP_RESPONSE_SUCCESS) {
|
status == PORT_VDP_RESPONSE_SUCCESS) {
|
||||||
@ -806,7 +807,7 @@ doPortProfileOpCommon(bool nltarget_kernel,
|
|||||||
_("error %d during port-profile setlink on "
|
_("error %d during port-profile setlink on "
|
||||||
"interface %s (%d)"),
|
"interface %s (%d)"),
|
||||||
status, ifname, ifindex);
|
status, ifname, ifindex);
|
||||||
rc = 1;
|
rc = -1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -818,7 +819,7 @@ doPortProfileOpCommon(bool nltarget_kernel,
|
|||||||
if (status == PORT_PROFILE_RESPONSE_INPROGRESS) {
|
if (status == PORT_PROFILE_RESPONSE_INPROGRESS) {
|
||||||
macvtapError(VIR_ERR_INTERNAL_ERROR, "%s",
|
macvtapError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("port-profile setlink timed out"));
|
_("port-profile setlink timed out"));
|
||||||
rc = -ETIMEDOUT;
|
rc = -2;
|
||||||
}
|
}
|
||||||
|
|
||||||
err_exit:
|
err_exit:
|
||||||
@ -843,7 +844,7 @@ getPhysdevAndVlan(const char *ifname, int *root_ifindex, char *root_ifname,
|
|||||||
*vlanid = -1;
|
*vlanid = -1;
|
||||||
while (1) {
|
while (1) {
|
||||||
if ((ret = ifaceGetNthParent(ifindex, ifname, 1,
|
if ((ret = ifaceGetNthParent(ifindex, ifname, 1,
|
||||||
root_ifindex, root_ifname, &nth)))
|
root_ifindex, root_ifname, &nth)) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
if (nth == 0)
|
if (nth == 0)
|
||||||
break;
|
break;
|
||||||
@ -861,13 +862,14 @@ getPhysdevAndVlan(const char *ifname, int *root_ifindex, char *root_ifname,
|
|||||||
|
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
/* Returns 0 on success, -1 on general failure, and -2 on timeout */
|
||||||
static int
|
static int
|
||||||
doPortProfileOp8021Qbg(const char *ifname,
|
doPortProfileOp8021Qbg(const char *ifname,
|
||||||
const unsigned char *macaddr,
|
const unsigned char *macaddr,
|
||||||
const virVirtualPortProfileParamsPtr virtPort,
|
const virVirtualPortProfileParamsPtr virtPort,
|
||||||
enum virVirtualPortOp virtPortOp)
|
enum virVirtualPortOp virtPortOp)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc = 0;
|
||||||
|
|
||||||
# ifndef IFLA_VF_PORT_MAX
|
# ifndef IFLA_VF_PORT_MAX
|
||||||
|
|
||||||
@ -877,7 +879,7 @@ doPortProfileOp8021Qbg(const char *ifname,
|
|||||||
(void)virtPortOp;
|
(void)virtPortOp;
|
||||||
macvtapError(VIR_ERR_INTERNAL_ERROR, "%s",
|
macvtapError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("Kernel VF Port support was missing at compile time."));
|
_("Kernel VF Port support was missing at compile time."));
|
||||||
rc = 1;
|
rc = -1;
|
||||||
|
|
||||||
# else /* IFLA_VF_PORT_MAX */
|
# else /* IFLA_VF_PORT_MAX */
|
||||||
|
|
||||||
@ -893,8 +895,8 @@ doPortProfileOp8021Qbg(const char *ifname,
|
|||||||
int vf = PORT_SELF_VF;
|
int vf = PORT_SELF_VF;
|
||||||
|
|
||||||
if (getPhysdevAndVlan(ifname, &physdev_ifindex, physdev_ifname,
|
if (getPhysdevAndVlan(ifname, &physdev_ifindex, physdev_ifname,
|
||||||
&vlanid) != 0) {
|
&vlanid) < 0) {
|
||||||
rc = 1;
|
rc = -1;
|
||||||
goto err_exit;
|
goto err_exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -918,7 +920,7 @@ doPortProfileOp8021Qbg(const char *ifname,
|
|||||||
default:
|
default:
|
||||||
macvtapError(VIR_ERR_INTERNAL_ERROR,
|
macvtapError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("operation type %d not supported"), virtPortOp);
|
_("operation type %d not supported"), virtPortOp);
|
||||||
rc = 1;
|
rc = -1;
|
||||||
goto err_exit;
|
goto err_exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -947,10 +949,9 @@ getPhysfnDev(const char *linkdev,
|
|||||||
int32_t *vf,
|
int32_t *vf,
|
||||||
char **physfndev)
|
char **physfndev)
|
||||||
{
|
{
|
||||||
int rc = 0;
|
int rc = -1;
|
||||||
|
|
||||||
if (ifaceIsVirtualFunction(linkdev)) {
|
|
||||||
|
|
||||||
|
if (ifaceIsVirtualFunction(linkdev) == 1) {
|
||||||
/* if linkdev is SR-IOV VF, then set vf = VF index */
|
/* if linkdev is SR-IOV VF, then set vf = VF index */
|
||||||
/* and set linkdev = PF device */
|
/* and set linkdev = PF device */
|
||||||
|
|
||||||
@ -967,14 +968,18 @@ getPhysfnDev(const char *linkdev,
|
|||||||
*physfndev = strdup(linkdev);
|
*physfndev = strdup(linkdev);
|
||||||
if (!*physfndev) {
|
if (!*physfndev) {
|
||||||
virReportOOMError();
|
virReportOOMError();
|
||||||
rc = -1;
|
goto err_exit;
|
||||||
}
|
}
|
||||||
|
rc = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err_exit:
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
# endif /* IFLA_VF_PORT_MAX */
|
# endif /* IFLA_VF_PORT_MAX */
|
||||||
|
|
||||||
|
/* Returns 0 on success, -1 on general failure, and -2 on timeout */
|
||||||
static int
|
static int
|
||||||
doPortProfileOp8021Qbh(const char *ifname,
|
doPortProfileOp8021Qbh(const char *ifname,
|
||||||
const unsigned char *macaddr,
|
const unsigned char *macaddr,
|
||||||
@ -982,7 +987,7 @@ doPortProfileOp8021Qbh(const char *ifname,
|
|||||||
const unsigned char *vm_uuid,
|
const unsigned char *vm_uuid,
|
||||||
enum virVirtualPortOp virtPortOp)
|
enum virVirtualPortOp virtPortOp)
|
||||||
{
|
{
|
||||||
int rc;
|
int rc = 0;
|
||||||
|
|
||||||
# ifndef IFLA_VF_PORT_MAX
|
# ifndef IFLA_VF_PORT_MAX
|
||||||
|
|
||||||
@ -993,7 +998,7 @@ doPortProfileOp8021Qbh(const char *ifname,
|
|||||||
(void)virtPortOp;
|
(void)virtPortOp;
|
||||||
macvtapError(VIR_ERR_INTERNAL_ERROR, "%s",
|
macvtapError(VIR_ERR_INTERNAL_ERROR, "%s",
|
||||||
_("Kernel VF Port support was missing at compile time."));
|
_("Kernel VF Port support was missing at compile time."));
|
||||||
rc = 1;
|
rc = -1;
|
||||||
|
|
||||||
# else /* IFLA_VF_PORT_MAX */
|
# else /* IFLA_VF_PORT_MAX */
|
||||||
|
|
||||||
@ -1005,20 +1010,21 @@ doPortProfileOp8021Qbh(const char *ifname,
|
|||||||
int vlanid = -1;
|
int vlanid = -1;
|
||||||
|
|
||||||
rc = getPhysfnDev(ifname, &vf, &physfndev);
|
rc = getPhysfnDev(ifname, &vf, &physfndev);
|
||||||
if (rc)
|
if (rc < 0)
|
||||||
goto err_exit;
|
goto err_exit;
|
||||||
|
|
||||||
if (ifaceGetIndex(true, physfndev, &ifindex) < 0) {
|
rc = ifaceGetIndex(true, physfndev, &ifindex);
|
||||||
rc = 1;
|
if (rc < 0)
|
||||||
goto err_exit;
|
goto err_exit;
|
||||||
}
|
|
||||||
|
|
||||||
switch (virtPortOp) {
|
switch (virtPortOp) {
|
||||||
case PREASSOCIATE_RR:
|
case PREASSOCIATE_RR:
|
||||||
case ASSOCIATE:
|
case ASSOCIATE:
|
||||||
rc = virGetHostUUID(hostuuid);
|
errno = virGetHostUUID(hostuuid);
|
||||||
if (rc)
|
if (errno) {
|
||||||
|
rc = -1;
|
||||||
goto err_exit;
|
goto err_exit;
|
||||||
|
}
|
||||||
|
|
||||||
rc = doPortProfileOpCommon(nltarget_kernel, NULL, ifindex,
|
rc = doPortProfileOpCommon(nltarget_kernel, NULL, ifindex,
|
||||||
macaddr,
|
macaddr,
|
||||||
@ -1031,7 +1037,7 @@ doPortProfileOp8021Qbh(const char *ifname,
|
|||||||
(virtPortOp == PREASSOCIATE_RR) ?
|
(virtPortOp == PREASSOCIATE_RR) ?
|
||||||
PORT_REQUEST_PREASSOCIATE_RR
|
PORT_REQUEST_PREASSOCIATE_RR
|
||||||
: PORT_REQUEST_ASSOCIATE);
|
: PORT_REQUEST_ASSOCIATE);
|
||||||
if (rc == -ETIMEDOUT)
|
if (rc == -2)
|
||||||
/* Association timed out, disassociate */
|
/* Association timed out, disassociate */
|
||||||
doPortProfileOpCommon(nltarget_kernel, NULL, ifindex,
|
doPortProfileOpCommon(nltarget_kernel, NULL, ifindex,
|
||||||
NULL,
|
NULL,
|
||||||
@ -1059,7 +1065,7 @@ doPortProfileOp8021Qbh(const char *ifname,
|
|||||||
default:
|
default:
|
||||||
macvtapError(VIR_ERR_INTERNAL_ERROR,
|
macvtapError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("operation type %d not supported"), virtPortOp);
|
_("operation type %d not supported"), virtPortOp);
|
||||||
rc = 1;
|
rc = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
err_exit:
|
err_exit:
|
||||||
@ -1084,7 +1090,7 @@ err_exit:
|
|||||||
* by the user, then this function returns without doing
|
* by the user, then this function returns without doing
|
||||||
* anything.
|
* anything.
|
||||||
*
|
*
|
||||||
* Returns 0 in case of success, != 0 otherwise with error
|
* Returns 0 in case of success, < 0 otherwise with error
|
||||||
* having been reported.
|
* having been reported.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
|
@ -1707,9 +1707,9 @@ int pciDeviceIsAssignable(pciDevice *dev,
|
|||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* returns 1 if equal and 0 if not
|
* returns true if equal
|
||||||
*/
|
*/
|
||||||
static int
|
static bool
|
||||||
pciConfigAddressEqual(struct pci_config_address *bdf1,
|
pciConfigAddressEqual(struct pci_config_address *bdf1,
|
||||||
struct pci_config_address *bdf2)
|
struct pci_config_address *bdf2)
|
||||||
{
|
{
|
||||||
@ -1959,11 +1959,11 @@ pciGetVirtualFunctionIndex(const char *pf_sysfs_device_link,
|
|||||||
struct pci_config_address **virt_fns = NULL;
|
struct pci_config_address **virt_fns = NULL;
|
||||||
|
|
||||||
if (pciGetPciConfigAddressFromSysfsDeviceLink(vf_sysfs_device_link,
|
if (pciGetPciConfigAddressFromSysfsDeviceLink(vf_sysfs_device_link,
|
||||||
&vf_bdf))
|
&vf_bdf) < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
if (pciGetVirtualFunctions(pf_sysfs_device_link, &virt_fns,
|
if (pciGetVirtualFunctions(pf_sysfs_device_link, &virt_fns,
|
||||||
&num_virt_fns)) {
|
&num_virt_fns) < 0) {
|
||||||
pciReportError(VIR_ERR_INTERNAL_ERROR,
|
pciReportError(VIR_ERR_INTERNAL_ERROR,
|
||||||
_("Error getting physical function's '%s' "
|
_("Error getting physical function's '%s' "
|
||||||
"virtual_functions"), pf_sysfs_device_link);
|
"virtual_functions"), pf_sysfs_device_link);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user