[libvirt] [PATCH 2/5] util: Introduce virPCIDeviceConfigOpenWrite

Ján Tomko jtomko at redhat.com
Tue Aug 13 13:45:16 UTC 2019


Only a handful of function need write access to the PCI config
space. Create a wrapper function for those so that we can
open it read only by default.

Signed-off-by: Ján Tomko <jtomko at redhat.com>
---
 src/util/virpci.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/util/virpci.c b/src/util/virpci.c
index f4be907a10..c1dad1e69f 100644
--- a/src/util/virpci.c
+++ b/src/util/virpci.c
@@ -320,6 +320,12 @@ virPCIDeviceConfigOpen(virPCIDevicePtr dev, bool fatal)
     return virPCIDeviceConfigOpenInternal(dev, fatal);
 }
 
+static int
+virPCIDeviceConfigOpenWrite(virPCIDevicePtr dev)
+{
+    return virPCIDeviceConfigOpenInternal(dev, true);
+}
+
 static void
 virPCIDeviceConfigClose(virPCIDevicePtr dev, int cfgfd)
 {
@@ -808,7 +814,7 @@ virPCIDeviceTrySecondaryBusReset(virPCIDevicePtr dev,
                        dev->name);
         return -1;
     }
-    if ((parentfd = virPCIDeviceConfigOpen(parent, true)) < 0)
+    if ((parentfd = virPCIDeviceConfigOpenWrite(parent)) < 0)
         goto out;
 
     VIR_DEBUG("%s %s: doing a secondary bus reset", dev->id, dev->name);
@@ -957,7 +963,7 @@ virPCIDeviceReset(virPCIDevicePtr dev,
     }
     VIR_DEBUG("Resetting device %s", dev->name);
 
-    if ((fd = virPCIDeviceConfigOpen(dev, true)) < 0)
+    if ((fd = virPCIDeviceConfigOpenWrite(dev)) < 0)
         goto cleanup;
 
     if (virPCIDeviceInit(dev, fd) < 0)
-- 
2.20.1




More information about the libvir-list mailing list