|
@@ -943,7 +943,9 @@ void qmp_device_del(const char *id, Error **errp)
|
|
|
{
|
|
|
DeviceState *dev = find_device_state(id, errp);
|
|
|
if (dev != NULL) {
|
|
|
- if (dev->pending_deleted_event) {
|
|
|
+ if (dev->pending_deleted_event &&
|
|
|
+ (dev->pending_deleted_expires_ms == 0 ||
|
|
|
+ dev->pending_deleted_expires_ms > qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL))) {
|
|
|
error_setg(errp, "Device %s is already in the "
|
|
|
"process of unplug", id);
|
|
|
return;
|