qemuSlirpStart: Simplify parameters

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 <pkrempa@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2022-05-10 16:28:52 +02:00
parent 50d2489b7f
commit 42b939d13a
4 changed files with 10 additions and 10 deletions

View File

@ -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;
}

View File

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

View File

@ -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",

View File

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