File f38ef0fa-no-RDMA-check.patch of Package libvirt.16761

commit f38ef0fac0582ac0cbb749af9d3f8ba515a6084a
Author: Pavel Hrdina <phrdina@redhat.com>
Date:   Thu Mar 7 17:52:55 2019 +0100

    util: skip RDMA detection for non-PCI network devices
    
    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>

Index: libvirt-5.1.0/src/util/virnetdev.c
===================================================================
--- libvirt-5.1.0.orig/src/util/virnetdev.c
+++ libvirt-5.1.0/src/util/virnetdev.c
@@ -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;
openSUSE Build Service is sponsored by