summaryrefslogtreecommitdiff
path: root/hw/virtio-serial-bus.c
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2010-05-31 16:19:43 +0200
committerAurelien Jarno <aurelien@aurel32.net>2010-06-30 20:38:58 +0200
commitf83ccb3eab5926b5ed37db7e94e0f22ec8754003 (patch)
tree86239c5cc2eac18cb2e8ac203ff043e67e82b52a /hw/virtio-serial-bus.c
parent81bf96d3d299a7f88bf3e2ece4f795a9949db5f7 (diff)
downloadqemu-f83ccb3eab5926b5ed37db7e94e0f22ec8754003.tar.gz
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/virtio-serial-bus.c')
-rw-r--r--hw/virtio-serial-bus.c12
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);