libvirt/virNetDevSwitchdevFeature-Make-failure-to-get-family.patch
AlexChen 811898dff8 cherry-pick some bugfix patches from open source community
cherry-pick patchs list:
2ab8dba5    qemuDomainGetUnplugTimeout: Add G_GNUC_NO_INLINE 
423664a6    virNetDevSwitchdevFeature: Make failure to get 'family_id' non-fatal 
ca616274    virNetDevGetFamilyId: Change signature 
67b973b5    qemuDomainDefPostParse: Fail if unable to fill machine type 
67e19fc9    qemu: Revoke access to mirror on failed blockcopy 
93b15ba0    qemu: fix hang in p2p + xbzrle compression + parallel migration 
a13ac587    util: fix iteration in virSocketAddrResolveService 
88011ed2    libxl: fix crash when initializing driver

Signed-off-by: AlexChen <alex.chen@huawei.com>
2020-09-29 16:59:08 +08:00

58 lines
1.9 KiB
Diff

From 7581a0bbd552d63d654a88f0ad2a68e99fa8b54a Mon Sep 17 00:00:00 2001
From: Michal Privoznik <mprivozn@redhat.com>
Date: Sun, 19 Apr 2020 07:25:34 +0200
Subject: [PATCH 7/8] virNetDevSwitchdevFeature: Make failure to get
'family_id' non-fatal
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
I've just got a new machine and I'm still converging on the
kernel config. Anyway, since I don't have enabled any of SRIO-V
drivers, my kernel doesn't have NET_DEVLINK enabled (i.e.
virNetDevGetFamilyId() returns 0). But this makes nodedev driver
ignore all interfaces, because when enumerating all devices via
udev, the control reaches virNetDevSwitchdevFeature() eventually
and subsequently virNetDevGetFamilyId() which 'fails'. Well, it's
not really a failure - the virNetDevSwitchdevFeature() stub
simply returns 0.
Also, move the call a few lines below, just around the place
where it's needed.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Signed-off-by: AlexChen <alex.chen@huawei.com>
---
src/util/virnetdev.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
index 3431aaf6a9..ff86aa1fc9 100644
--- a/src/util/virnetdev.c
+++ b/src/util/virnetdev.c
@@ -3146,9 +3146,7 @@ virNetDevSwitchdevFeature(const char *ifname,
int is_vf = -1;
int ret = -1;
uint32_t family_id;
-
- if (virNetDevGetFamilyId(DEVLINK_GENL_NAME, &family_id) <= 0)
- return ret;
+ int rv;
if ((is_vf = virNetDevIsVirtualFunction(ifname)) < 0)
return ret;
@@ -3168,6 +3166,9 @@ virNetDevSwitchdevFeature(const char *ifname,
goto cleanup;
}
+ if ((rv = virNetDevGetFamilyId(DEVLINK_GENL_NAME, &family_id)) <= 0)
+ return rv;
+
if (!(nl_msg = nlmsg_alloc_simple(family_id,
NLM_F_REQUEST | NLM_F_ACK))) {
virReportOOMError();
--
2.23.0