[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/9] virtio-serial-bus: save/load: Ensure nr_ports o
From: |
Amit Shah |
Subject: |
[Qemu-devel] [PATCH 2/9] virtio-serial-bus: save/load: Ensure nr_ports on src and dest are same. |
Date: |
Tue, 23 Mar 2010 20:00:12 +0530 |
The number of ports on the source as well as the destination machines
should match. If they don't, it means some ports that got hotplugged on
the source aren't instantiated on the destination. Or that ports that
were hot-unplugged on the source are created on the destination.
Signed-off-by: Amit Shah <address@hidden>
Reported-by: Juan Quintela <address@hidden>
---
hw/virtio-serial-bus.c | 18 ++++++++++++++++--
1 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c
index 36985a1..f43d1fc 100644
--- a/hw/virtio-serial-bus.c
+++ b/hw/virtio-serial-bus.c
@@ -401,7 +401,7 @@ static int virtio_serial_load(QEMUFile *f, void *opaque,
int version_id)
{
VirtIOSerial *s = opaque;
VirtIOSerialPort *port;
- uint32_t max_nr_ports, nr_active_ports;
+ uint32_t max_nr_ports, nr_active_ports, nr_ports;
unsigned int i;
if (version_id > 2) {
@@ -418,7 +418,21 @@ static int virtio_serial_load(QEMUFile *f, void *opaque,
int version_id)
/* The config space */
qemu_get_be16s(f, &s->config.cols);
qemu_get_be16s(f, &s->config.rows);
- s->config.nr_ports = qemu_get_be32(f);
+ nr_ports = qemu_get_be32(f);
+
+ if (nr_ports != s->config.nr_ports) {
+ /*
+ * Source hot-plugged/unplugged ports and we don't have all of
+ * them here.
+ *
+ * Note: This condition cannot check for all hotplug/unplug
+ * events: eg, if one port was hot-plugged and one was
+ * unplugged, the nr_ports remains the same but the port id's
+ * would have changed and we won't catch it here. A later
+ * check for !find_port_by_id() will confirm if this happened.
+ */
+ return -EINVAL;
+ }
/* Items in struct VirtIOSerial */
--
1.6.2.5
- [Qemu-devel] [PATCH 0/9] v2: Fixes, new way of discovering ports, Amit Shah, 2010/03/23
- [Qemu-devel] [PATCH 1/9] virtio-serial-bus: save/load: Ensure target has enough ports, Amit Shah, 2010/03/23
- [Qemu-devel] [PATCH 2/9] virtio-serial-bus: save/load: Ensure nr_ports on src and dest are same.,
Amit Shah <=
- [Qemu-devel] [PATCH 3/9] virtio-serial: Remove redundant check for 0-sized write request, Amit Shah, 2010/03/23
- [Qemu-devel] [PATCH 4/9] virtio-serial: Update copyright year to 2010, Amit Shah, 2010/03/23
- [Qemu-devel] [PATCH 5/9] virtio-serial: save/load: Ensure we have hot-plugged ports instantiated, Amit Shah, 2010/03/23
- [Qemu-devel] [PATCH 6/9] virtio-serial-bus: Use control messages to notify guest of new ports, Amit Shah, 2010/03/23
- [Qemu-devel] [PATCH 7/9] virtio-serial-bus: Let the guest know of host connection changes after migration, Amit Shah, 2010/03/23
- [Qemu-devel] [PATCH 8/9] virtio-serial: Handle scatter-gather buffers for control messages, Amit Shah, 2010/03/23
- [Qemu-devel] [PATCH 9/9] virtio-serial: Handle scatter/gather input from the guest, Amit Shah, 2010/03/23
- [Qemu-devel] Re: [PATCH 9/9] virtio-serial: Handle scatter/gather input from the guest, Amit Shah, 2010/03/23
[Qemu-devel] Re: [PATCH 0/9] v2: Fixes, new way of discovering ports, Juan Quintela, 2010/03/23