diff options
author | Markus Armbruster <armbru@redhat.com> | 2010-05-31 16:19:43 +0200 |
---|---|---|
committer | Aurelien Jarno <aurelien@aurel32.net> | 2010-06-30 20:38:58 +0200 |
commit | f83ccb3eab5926b5ed37db7e94e0f22ec8754003 (patch) | |
tree | 86239c5cc2eac18cb2e8ac203ff043e67e82b52a /hw | |
parent | 81bf96d3d299a7f88bf3e2ece4f795a9949db5f7 (diff) |
virtio-serial: Simplify virtio_serial_load()
For all i, ports_map[i] is used in and only in the i-th iteration.
Replace the dynamic array by a scalar variable.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Acked-by: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/virtio-serial-bus.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/hw/virtio-serial-bus.c b/hw/virtio-serial-bus.c index 7f9d28f896..fa5283cbb5 100644 --- a/hw/virtio-serial-bus.c +++ b/hw/virtio-serial-bus.c @@ -492,8 +492,7 @@ static int virtio_serial_load(QEMUFile *f, void *opaque, int version_id) { VirtIOSerial *s = opaque; VirtIOSerialPort *port; - size_t ports_map_size; - uint32_t max_nr_ports, nr_active_ports, *ports_map; + uint32_t max_nr_ports, nr_active_ports, ports_map; unsigned int i; if (version_id > 2) { @@ -517,22 +516,17 @@ static int virtio_serial_load(QEMUFile *f, void *opaque, int version_id) return -EINVAL; } - ports_map_size = sizeof(uint32_t) * (max_nr_ports + 31) / 32; - ports_map = qemu_malloc(ports_map_size); - for (i = 0; i < (max_nr_ports + 31) / 32; i++) { - qemu_get_be32s(f, &ports_map[i]); + qemu_get_be32s(f, &ports_map); - if (ports_map[i] != s->ports_map[i]) { + if (ports_map != s->ports_map[i]) { /* * Ports active on source and destination don't * match. Fail migration. */ - qemu_free(ports_map); return -EINVAL; } } - qemu_free(ports_map); qemu_get_be32s(f, &nr_active_ports); |