From: Pavel Hrdina Date: Thu, 7 Mar 2019 16:52:55 +0000 (+0100) Subject: util: skip RDMA detection for non-PCI network devices X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=f38ef0fac0582ac0cbb749af9d3f8ba515a6084a;p=libvirt.git util: skip RDMA detection for non-PCI network devices Only PCI devices have '/sys/class/net//device/resource' so we need to skip this check for all other network devices. Without this patch and RDMA enabled libvirt will not detect any network device that doesn't have the path above which includes 'lo', 'virbr', 'tun', etc. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1639258 Reviewed-by: Andrea Bolognani Signed-off-by: Pavel Hrdina --- diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c index aeb9caab2a..699f2a0acb 100644 --- a/src/util/virnetdev.c +++ b/src/util/virnetdev.c @@ -2914,8 +2914,14 @@ virNetDevRDMAFeature(const char *ifname, if (virAsprintf(ð_devpath, SYSFS_NET_DIR "%s/device/resource", ifname) < 0) goto cleanup; - if (!virFileExists(eth_devpath)) + + /* If /sys/class/net//device/resource doesn't exist it is not a PCI + * device and therefore it will not have RDMA. */ + if (!virFileExists(eth_devpath)) { + ret = 0; goto cleanup; + } + if (virFileReadAll(eth_devpath, RESOURCE_FILE_LEN, ð_res_buf) < 0) goto cleanup;