c313de
From dce9613ddab9d780ce9aabeb9a084ffec307899c Mon Sep 17 00:00:00 2001
c313de
Message-Id: <dce9613ddab9d780ce9aabeb9a084ffec307899c@dist-git>
c313de
From: Pavel Hrdina <phrdina@redhat.com>
c313de
Date: Mon, 20 May 2019 10:12:55 +0200
c313de
Subject: [PATCH] util: skip RDMA detection for non-PCI network devices
c313de
c313de
Only PCI devices have '/sys/class/net/<ifname>/device/resource' so we
c313de
need to skip this check for all other network devices.
c313de
c313de
Without this patch and RDMA enabled libvirt will not detect any network
c313de
device that doesn't have the path above which includes 'lo', 'virbr',
c313de
'tun', etc.
c313de
c313de
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1639258
c313de
c313de
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
c313de
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
c313de
(cherry picked from commit f38ef0fac0582ac0cbb749af9d3f8ba515a6084a)
c313de
c313de
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1693299
c313de
c313de
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
c313de
Message-Id: <5d2c32fd3f2d7e3f9664d395c00cdfc942c738ce.1558339954.git.phrdina@redhat.com>
c313de
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
c313de
---
c313de
 src/util/virnetdev.c | 8 +++++++-
c313de
 1 file changed, 7 insertions(+), 1 deletion(-)
c313de
c313de
diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
c313de
index b250af9e2c..9ca3ce69bc 100644
c313de
--- a/src/util/virnetdev.c
c313de
+++ b/src/util/virnetdev.c
c313de
@@ -3016,8 +3016,14 @@ virNetDevRDMAFeature(const char *ifname,
c313de
 
c313de
     if (virAsprintf(&eth_devpath, SYSFS_NET_DIR "%s/device/resource", ifname) < 0)
c313de
         goto cleanup;
c313de
-    if (!virFileExists(eth_devpath))
c313de
+
c313de
+    /* If /sys/class/net/<ifname>/device/resource doesn't exist it is not a PCI
c313de
+     * device and therefore it will not have RDMA. */
c313de
+    if (!virFileExists(eth_devpath)) {
c313de
+        ret = 0;
c313de
         goto cleanup;
c313de
+    }
c313de
+
c313de
     if (virFileReadAll(eth_devpath, RESOURCE_FILE_LEN, &eth_res_buf) < 0)
c313de
         goto cleanup;
c313de
 
c313de
-- 
c313de
2.22.0
c313de