]> xenbits.xensource.com Git - libvirt.git/commitdiff
util: skip RDMA detection for non-PCI network devices
authorPavel Hrdina <phrdina@redhat.com>
Thu, 7 Mar 2019 16:52:55 +0000 (17:52 +0100)
committerPavel Hrdina <phrdina@redhat.com>
Fri, 8 Mar 2019 15:22:50 +0000 (16:22 +0100)
Only PCI devices have '/sys/class/net/<ifname>/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 <abologna@redhat.com>
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
src/util/virnetdev.c

index aeb9caab2a1174706e1aa1a42a66c5a27eccdbda..699f2a0acbb493bab8fb6aac88eb9a6f2d916949 100644 (file)
@@ -2914,8 +2914,14 @@ virNetDevRDMAFeature(const char *ifname,
 
     if (virAsprintf(&eth_devpath, SYSFS_NET_DIR "%s/device/resource", ifname) < 0)
         goto cleanup;
-    if (!virFileExists(eth_devpath))
+
+    /* If /sys/class/net/<ifname>/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, &eth_res_buf) < 0)
         goto cleanup;