device_core: use drain_call_rcu in in qmp_device_add
commit7bed89958bfbf40df9ca681cefbdca63abdde39d
authorMaxim Levitsky <mlevitsk@redhat.com>
Tue, 6 Oct 2020 12:38:58 +0000 (6 14:38 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 12 Oct 2020 15:50:50 +0000 (12 11:50 -0400)
tree93edb2b6954d1a46a0f515115d28fb8e99461223
parent7a8202c521a5d1ac9e289d5c2b5125a9310af178
device_core: use drain_call_rcu in in qmp_device_add

Soon, a device removal might only happen on RCU callback execution.
This is okay for device-del which provides a DEVICE_DELETED event,
but not for the failure case of device-add.  To avoid changing
monitor semantics, just drain all pending RCU callbacks on error.

Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Suggested-by: Stefan Hajnoczi <stefanha@gmail.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-Id: <20200913160259.32145-4-mlevitsk@redhat.com>
[Don't use it in qmp_device_del. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
softmmu/qdev-monitor.c