aboutsummaryrefslogtreecommitdiff
path: root/include/hw/virtio/virtio-serial.h
diff options
context:
space:
mode:
authorPavel Butsykin <pbutsykin@virtuozzo.com>2017-09-19 15:07:33 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2017-09-21 11:51:49 +0200
commit55289fb036481396466d7825fa01d829c891108c (patch)
tree3a3913a0815b31982f08562fd1fefb3a4b01b509 /include/hw/virtio/virtio-serial.h
parentb62b7ed0fc9c58e373b8946c9bd2e193be98dae6 (diff)
downloadqemu-55289fb036481396466d7825fa01d829c891108c.zip
qemu-55289fb036481396466d7825fa01d829c891108c.tar.gz
qemu-55289fb036481396466d7825fa01d829c891108c.tar.bz2
virtio-serial: add enable_backend callback
We should guarantee that RAM will not be modified while VM has a stopped state, otherwise it can lead to negative consequences during post-copy migration. In RUN_STATE_FINISH_MIGRATE step, it's expected that RAM on source side will not be modified as this could lead to non-consistent vm state on the destination side. Also RAM access during postcopy-ram migration with enabled release-ram capability can lead to sad consequences. Let's add enable_backend() callback to avoid undesirable virtioqueue changes in the guest memory. Signed-off-by: Pavel Butsykin <pbutsykin@virtuozzo.com> Message-Id: <20170919120733.22020-1-pbutsykin@virtuozzo.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'include/hw/virtio/virtio-serial.h')
-rw-r--r--include/hw/virtio/virtio-serial.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/hw/virtio/virtio-serial.h b/include/hw/virtio/virtio-serial.h
index b19c447..12657a9 100644
--- a/include/hw/virtio/virtio-serial.h
+++ b/include/hw/virtio/virtio-serial.h
@@ -58,6 +58,9 @@ typedef struct VirtIOSerialPortClass {
/* Guest opened/closed device. */
void (*set_guest_connected)(VirtIOSerialPort *port, int guest_connected);
+ /* Enable/disable backend for virtio serial port */
+ void (*enable_backend)(VirtIOSerialPort *port, bool enable);
+
/* Guest is now ready to accept data (virtqueues set up). */
void (*guest_ready)(VirtIOSerialPort *port);