util: Introduce virPCIDeviceConfigOpenWrite

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@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Ján Tomko 2019-08-13 15:07:53 +02:00
parent fc16c69987
commit fabb743050

View File

@ -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)