|
|
982648 |
From 8942f48f8ba0a7f3e68cf4a0c9b9ad5e1c35b88b Mon Sep 17 00:00:00 2001
|
|
|
982648 |
Message-Id: <8942f48f8ba0a7f3e68cf4a0c9b9ad5e1c35b88b@dist-git>
|
|
|
982648 |
From: Peter Krempa <pkrempa@redhat.com>
|
|
|
982648 |
Date: Fri, 17 Aug 2018 12:05:13 +0200
|
|
|
982648 |
Subject: [PATCH] qemu: hotplug: Fix asynchronous unplug of 'shmem'
|
|
|
982648 |
|
|
|
982648 |
commit 5c81c342a7 forgot to skip the detaching of the shmem backend
|
|
|
982648 |
when async unplug is requested which meant that we've tried to unplug
|
|
|
982648 |
the backend prior to delivery of the DEVICE_DELETED event.
|
|
|
982648 |
|
|
|
982648 |
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1618622
|
|
|
982648 |
|
|
|
982648 |
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
|
|
|
982648 |
(cherry picked from commit 69c20e1090059d8b359fdd435e8ba50db7269be1)
|
|
|
982648 |
https: //bugzilla.redhat.com/show_bug.cgi?id=1618680
|
|
|
982648 |
Reviewed-by: Erik Skultety <eskultet@redhat.com>
|
|
|
982648 |
---
|
|
|
982648 |
src/qemu/qemu_hotplug.c | 11 ++++++++---
|
|
|
982648 |
1 file changed, 8 insertions(+), 3 deletions(-)
|
|
|
982648 |
|
|
|
982648 |
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
|
|
|
982648 |
index 053ddb14ec..397a2bdde2 100644
|
|
|
982648 |
--- a/src/qemu/qemu_hotplug.c
|
|
|
982648 |
+++ b/src/qemu/qemu_hotplug.c
|
|
|
982648 |
@@ -5262,11 +5262,16 @@ qemuDomainDetachShmemDevice(virQEMUDriverPtr driver,
|
|
|
982648 |
if (qemuDomainObjExitMonitor(driver, vm) < 0)
|
|
|
982648 |
goto cleanup;
|
|
|
982648 |
|
|
|
982648 |
- if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1)
|
|
|
982648 |
- ret = qemuDomainRemoveShmemDevice(driver, vm, shmem);
|
|
|
982648 |
+ if (async) {
|
|
|
982648 |
+ ret = 0;
|
|
|
982648 |
+ } else {
|
|
|
982648 |
+ if ((ret = qemuDomainWaitForDeviceRemoval(vm)) == 1)
|
|
|
982648 |
+ ret = qemuDomainRemoveShmemDevice(driver, vm, shmem);
|
|
|
982648 |
+ }
|
|
|
982648 |
|
|
|
982648 |
cleanup:
|
|
|
982648 |
- qemuDomainResetDeviceRemoval(vm);
|
|
|
982648 |
+ if (!async)
|
|
|
982648 |
+ qemuDomainResetDeviceRemoval(vm);
|
|
|
982648 |
return ret;
|
|
|
982648 |
}
|
|
|
982648 |
|
|
|
982648 |
--
|
|
|
982648 |
2.18.0
|
|
|
982648 |
|