From 42b939d13a3731568b391a7efcad8049468389f0 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Tue, 10 May 2022 16:28:52 +0200 Subject: [PATCH] qemuSlirpStart: Simplify parameters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 'driver' can be taken from the private data of 'vm' and 'slirp' can be taken from private data of 'net', both of which we need anyways. Additionally by checking whether slirp needs to be started inside the function we don't need to do this logic in the callers. Signed-off-by: Peter Krempa Reviewed-by: Jonathon Jongsma Reviewed-by: Ján Tomko --- src/qemu/qemu_extdevice.c | 4 +--- src/qemu/qemu_hotplug.c | 2 +- src/qemu/qemu_slirp.c | 10 +++++++--- src/qemu/qemu_slirp.h | 4 +--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/qemu/qemu_extdevice.c b/src/qemu/qemu_extdevice.c index 537b130394..1e54d4ef2c 100644 --- a/src/qemu/qemu_extdevice.c +++ b/src/qemu/qemu_extdevice.c @@ -185,10 +185,8 @@ qemuExtDevicesStart(virQEMUDriver *driver, for (i = 0; i < def->nnets; i++) { virDomainNetDef *net = def->nets[i]; - qemuSlirp *slirp = QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp; - if (slirp && - qemuSlirpStart(slirp, vm, driver, net, incomingMigration) < 0) + if (qemuSlirpStart(vm, net, incomingMigration) < 0) return -1; } diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 8314d0e546..9eeba0210f 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1314,7 +1314,7 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver, break; if (qemuSlirpOpen(slirp, driver, vm->def) < 0 || - qemuSlirpStart(slirp, vm, driver, net, NULL) < 0) { + qemuSlirpStart(vm, net, NULL) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Failed to start slirp")); goto cleanup; diff --git a/src/qemu/qemu_slirp.c b/src/qemu/qemu_slirp.c index c832cfc20b..e1f06573e3 100644 --- a/src/qemu/qemu_slirp.c +++ b/src/qemu/qemu_slirp.c @@ -245,12 +245,13 @@ qemuSlirpSetupCgroup(qemuSlirp *slirp, int -qemuSlirpStart(qemuSlirp *slirp, - virDomainObj *vm, - virQEMUDriver *driver, +qemuSlirpStart(virDomainObj *vm, virDomainNetDef *net, bool incoming) { + qemuDomainObjPrivate *priv = vm->privateData; + virQEMUDriver *driver = priv->driver; + qemuSlirp *slirp = QEMU_DOMAIN_NETWORK_PRIVATE(net)->slirp; g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver); g_autoptr(virCommand) cmd = NULL; g_autofree char *pidfile = NULL; @@ -262,6 +263,9 @@ qemuSlirpStart(qemuSlirp *slirp, VIR_AUTOCLOSE errfd = -1; bool killDBusDaemon = false; + if (!slirp) + return 0; + if (incoming && !qemuSlirpHasFeature(slirp, QEMU_SLIRP_FEATURE_MIGRATE)) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", diff --git a/src/qemu/qemu_slirp.h b/src/qemu/qemu_slirp.h index a9a09cd5f8..507ea720fa 100644 --- a/src/qemu/qemu_slirp.h +++ b/src/qemu/qemu_slirp.h @@ -61,9 +61,7 @@ int qemuSlirpOpen(qemuSlirp *slirp, virQEMUDriver *driver, virDomainDef *def); -int qemuSlirpStart(qemuSlirp *slirp, - virDomainObj *vm, - virQEMUDriver *driver, +int qemuSlirpStart(virDomainObj *vm, virDomainNetDef *net, bool incoming);