[libvirt] [PATCH 1/2] conf: nodedev: Don't refresh host caps in testdriver

Cole Robinson crobinso at redhat.com
Fri Feb 23 23:16:07 UTC 2018


Add a 'testdriver' bool that we set for test_driver.c nodedevs
which will skip accessing host resources via virNodeDeviceUpdateCaps

Signed-off-by: Cole Robinson <crobinso at redhat.com>
---
 src/conf/node_device_conf.c | 3 +++
 src/conf/node_device_conf.h | 1 +
 src/test/test_driver.c      | 2 ++
 3 files changed, 6 insertions(+)

diff --git a/src/conf/node_device_conf.c b/src/conf/node_device_conf.c
index fd8f4e4a9..90c940f11 100644
--- a/src/conf/node_device_conf.c
+++ b/src/conf/node_device_conf.c
@@ -2425,6 +2425,9 @@ virNodeDeviceUpdateCaps(virNodeDeviceDefPtr def)
 {
     virNodeDevCapsDefPtr cap = def->caps;
 
+    if (def->testdriver)
+        return 0;
+
     while (cap) {
         switch (cap->data.type) {
         case VIR_NODE_DEV_CAP_SCSI_HOST:
diff --git a/src/conf/node_device_conf.h b/src/conf/node_device_conf.h
index 685ae3034..665f766e2 100644
--- a/src/conf/node_device_conf.h
+++ b/src/conf/node_device_conf.h
@@ -316,6 +316,7 @@ struct _virNodeDeviceDef {
     char *driver;                       /* optional driver name */
     char *devnode;                      /* /dev path */
     char **devlinks;                    /* /dev links */
+    bool testdriver;                    /* if true, skip host checks */
     virNodeDevCapsDefPtr caps;          /* optional device capabilities */
 };
 
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 043caa976..39784c9fa 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -1165,6 +1165,7 @@ testParseNodedevs(testDriverPtr privconn,
         if (!def)
             goto error;
 
+        def->testdriver = true;
         if (!(obj = virNodeDeviceObjListAssignDef(privconn->devs, def))) {
             virNodeDeviceDefFree(def);
             goto error;
@@ -5565,6 +5566,7 @@ testNodeDeviceMockCreateVport(testDriverPtr driver,
         caps = caps->next;
     }
 
+    def->testdriver = true;
     if (!(obj = virNodeDeviceObjListAssignDef(driver->devs, def)))
         goto cleanup;
     def = NULL;
-- 
2.14.3




More information about the libvir-list mailing list