Reviewed-by: Ján Tomko <jtomko(a)redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413(a)gmail.com>
---
src/hypervisor/domain_driver.c | 31 ++++++++++++-------------------
1 file changed, 12 insertions(+), 19 deletions(-)
diff --git a/src/hypervisor/domain_driver.c b/src/hypervisor/domain_driver.c
index 6ee74d6dff..c08b7d46c5 100644
--- a/src/hypervisor/domain_driver.c
+++ b/src/hypervisor/domain_driver.c
@@ -465,57 +465,50 @@ virDomainDriverNodeDeviceDetachFlags(virNodeDevicePtr dev,
virHostdevManagerPtr hostdevMgr,
const char *driverName)
{
- virPCIDevicePtr pci = NULL;
+ g_autoptr(virPCIDevice) pci = NULL;
virPCIDeviceAddress devAddr;
- int ret = -1;
- virNodeDeviceDefPtr def = NULL;
+ g_autoptr(virNodeDeviceDef) def = NULL;
g_autofree char *xml = NULL;
- virConnectPtr nodeconn = NULL;
- virNodeDevicePtr nodedev = NULL;
+ g_autoptr(virConnect) nodeconn = NULL;
+ g_autoptr(virNodeDevice) nodedev = NULL;
if (!driverName)
return -1;
if (!(nodeconn = virGetConnectNodeDev()))
- goto cleanup;
+ return -1;
/* 'dev' is associated with virConnectPtr, so for split
* daemons, we need to get a copy that is associated with
* the virnodedevd daemon. */
if (!(nodedev = virNodeDeviceLookupByName(nodeconn,
virNodeDeviceGetName(dev))))
- goto cleanup;
+ return -1;
xml = virNodeDeviceGetXMLDesc(nodedev, 0);
if (!xml)
- goto cleanup;
+ return -1;
def = virNodeDeviceDefParseString(xml, EXISTING_DEVICE, NULL);
if (!def)
- goto cleanup;
+ return -1;
/* ACL check must happen against original 'dev',
* not the new 'nodedev' we acquired */
if (virNodeDeviceDetachFlagsEnsureACL(dev->conn, def) < 0)
- goto cleanup;
+ return -1;
if (virDomainDriverNodeDeviceGetPCIInfo(def, &devAddr) < 0)
- goto cleanup;
+ return -1;
pci = virPCIDeviceNew(&devAddr);
if (!pci)
- goto cleanup;
+ return -1;
if (STREQ(driverName, "vfio"))
virPCIDeviceSetStubDriver(pci, VIR_PCI_STUB_DRIVER_VFIO);
else if (STREQ(driverName, "xen"))
virPCIDeviceSetStubDriver(pci, VIR_PCI_STUB_DRIVER_XEN);
- ret = virHostdevPCINodeDeviceDetach(hostdevMgr, pci);
- cleanup:
- virPCIDeviceFree(pci);
- virNodeDeviceDefFree(def);
- virObjectUnref(nodedev);
- virObjectUnref(nodeconn);
- return ret;
+ return virHostdevPCINodeDeviceDetach(hostdevMgr, pci);
}
--
2.26.2