From 2e78c588d8210576a59473e459180a1d88ffb7aa Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Tue, 3 Oct 2017 10:14:21 +0200 Subject: [PATCH] qemu: process: Pass flags to qemuProcessPrepareHost Pass flags to the function rather than just whether we have incoming migration. This also enforces correct startup policy for USB devices when reverting from a snapshot. --- src/qemu/qemu_migration.c | 2 +- src/qemu/qemu_process.c | 8 ++++---- src/qemu/qemu_process.h | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 078da1dfd8..dd60071bfd 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -2687,7 +2687,7 @@ qemuMigrationPrepareAny(virQEMUDriverPtr driver, if (qemuProcessPrepareDomain(dconn, driver, vm, startFlags) < 0) goto stopjob; - if (qemuProcessPrepareHost(driver, vm, !!incoming) < 0) + if (qemuProcessPrepareHost(driver, vm, startFlags) < 0) goto stopjob; rv = qemuProcessLaunch(dconn, driver, vm, QEMU_ASYNC_JOB_MIGRATION_IN, diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 4f2d5f96fa..3f70141e2f 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5420,7 +5420,7 @@ qemuProcessPrepareDomain(virConnectPtr conn, * qemuProcessPrepareHost: * @driver: qemu driver * @vm: domain object - * @incoming: true if we are preparing an incoming migration + * @flags: qemuProcessStartFlags * * This function groups all code that modifies host system (which also may * update live XML) to prepare environment for a domain which is about to start @@ -5431,7 +5431,7 @@ qemuProcessPrepareDomain(virConnectPtr conn, int qemuProcessPrepareHost(virQEMUDriverPtr driver, virDomainObjPtr vm, - bool incoming) + unsigned int flags) { int ret = -1; unsigned int hostdev_flags = 0; @@ -5453,7 +5453,7 @@ qemuProcessPrepareHost(virQEMUDriverPtr driver, VIR_DEBUG("Preparing host devices"); if (!cfg->relaxedACS) hostdev_flags |= VIR_HOSTDEV_STRICT_ACS_CHECK; - if (!incoming) + if (flags & VIR_QEMU_PROCESS_START_NEW) hostdev_flags |= VIR_HOSTDEV_COLD_BOOT; if (qemuHostdevPrepareDomainDevices(driver, vm->def, priv->qemuCaps, hostdev_flags) < 0) @@ -5969,7 +5969,7 @@ qemuProcessStart(virConnectPtr conn, if (qemuProcessPrepareDomain(conn, driver, vm, flags) < 0) goto stop; - if (qemuProcessPrepareHost(driver, vm, !!incoming) < 0) + if (qemuProcessPrepareHost(driver, vm, flags) < 0) goto stop; if ((rv = qemuProcessLaunch(conn, driver, vm, asyncJob, incoming, diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h index 667d5c53d5..814b86d8a7 100644 --- a/src/qemu/qemu_process.h +++ b/src/qemu/qemu_process.h @@ -111,7 +111,7 @@ int qemuProcessPrepareDomain(virConnectPtr conn, int qemuProcessPrepareHost(virQEMUDriverPtr driver, virDomainObjPtr vm, - bool incoming); + unsigned int flags); int qemuProcessLaunch(virConnectPtr conn, virQEMUDriverPtr driver, -- GitLab