virtio-net: Remove old migration version support

virtio-net has had version 11 since 0ce0e8f4 in 2009
(v0.11.0-rc0-1480-g0ce0e8f) - remove the code to support loading
anything earlier.

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: Amit Shah <amit.shah@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Dr. David Alan Gilbert 2016-07-14 18:22:43 +01:00 committed by Michael S. Tsirkin
parent 209b27bbe9
commit 76010cb320

View file

@ -1543,7 +1543,7 @@ static int virtio_net_load(QEMUFile *f, void *opaque, int version_id)
VirtIONet *n = opaque; VirtIONet *n = opaque;
VirtIODevice *vdev = VIRTIO_DEVICE(n); VirtIODevice *vdev = VIRTIO_DEVICE(n);
if (version_id < 2 || version_id > VIRTIO_NET_VM_VERSION) if (version_id != VIRTIO_NET_VM_VERSION)
return -EINVAL; return -EINVAL;
return virtio_load(vdev, f, version_id); return virtio_load(vdev, f, version_id);
@ -1562,68 +1562,49 @@ static int virtio_net_load_device(VirtIODevice *vdev, QEMUFile *f,
virtio_vdev_has_feature(vdev, virtio_vdev_has_feature(vdev,
VIRTIO_F_VERSION_1)); VIRTIO_F_VERSION_1));
if (version_id >= 3) n->status = qemu_get_be16(f);
n->status = qemu_get_be16(f);
if (version_id >= 4) { n->promisc = qemu_get_byte(f);
if (version_id < 8) { n->allmulti = qemu_get_byte(f);
n->promisc = qemu_get_be32(f);
n->allmulti = qemu_get_be32(f); n->mac_table.in_use = qemu_get_be32(f);
} else { /* MAC_TABLE_ENTRIES may be different from the saved image */
n->promisc = qemu_get_byte(f); if (n->mac_table.in_use <= MAC_TABLE_ENTRIES) {
n->allmulti = qemu_get_byte(f); qemu_get_buffer(f, n->mac_table.macs,
} n->mac_table.in_use * ETH_ALEN);
} } else {
int64_t i;
if (version_id >= 5) {
n->mac_table.in_use = qemu_get_be32(f); /* Overflow detected - can happen if source has a larger MAC table.
/* MAC_TABLE_ENTRIES may be different from the saved image */ * We simply set overflow flag so there's no need to maintain the
if (n->mac_table.in_use <= MAC_TABLE_ENTRIES) { * table of addresses, discard them all.
qemu_get_buffer(f, n->mac_table.macs, * Note: 64 bit math to avoid integer overflow.
n->mac_table.in_use * ETH_ALEN); */
} else { for (i = 0; i < (int64_t)n->mac_table.in_use * ETH_ALEN; ++i) {
int64_t i; qemu_get_byte(f);
/* Overflow detected - can happen if source has a larger MAC table.
* We simply set overflow flag so there's no need to maintain the
* table of addresses, discard them all.
* Note: 64 bit math to avoid integer overflow.
*/
for (i = 0; i < (int64_t)n->mac_table.in_use * ETH_ALEN; ++i) {
qemu_get_byte(f);
}
n->mac_table.multi_overflow = n->mac_table.uni_overflow = 1;
n->mac_table.in_use = 0;
} }
n->mac_table.multi_overflow = n->mac_table.uni_overflow = 1;
n->mac_table.in_use = 0;
} }
if (version_id >= 6) qemu_get_buffer(f, (uint8_t *)n->vlans, MAX_VLAN >> 3);
qemu_get_buffer(f, (uint8_t *)n->vlans, MAX_VLAN >> 3);
if (version_id >= 7) { if (qemu_get_be32(f) && !peer_has_vnet_hdr(n)) {
if (qemu_get_be32(f) && !peer_has_vnet_hdr(n)) { error_report("virtio-net: saved image requires vnet_hdr=on");
error_report("virtio-net: saved image requires vnet_hdr=on"); return -1;
return -1;
}
} }
if (version_id >= 9) { n->mac_table.multi_overflow = qemu_get_byte(f);
n->mac_table.multi_overflow = qemu_get_byte(f); n->mac_table.uni_overflow = qemu_get_byte(f);
n->mac_table.uni_overflow = qemu_get_byte(f);
}
if (version_id >= 10) { n->alluni = qemu_get_byte(f);
n->alluni = qemu_get_byte(f); n->nomulti = qemu_get_byte(f);
n->nomulti = qemu_get_byte(f); n->nouni = qemu_get_byte(f);
n->nouni = qemu_get_byte(f); n->nobcast = qemu_get_byte(f);
n->nobcast = qemu_get_byte(f);
}
if (version_id >= 11) { if (qemu_get_byte(f) && !peer_has_ufo(n)) {
if (qemu_get_byte(f) && !peer_has_ufo(n)) { error_report("virtio-net: saved image requires TUN_F_UFO support");
error_report("virtio-net: saved image requires TUN_F_UFO support"); return -1;
return -1;
}
} }
if (n->max_queues > 1) { if (n->max_queues > 1) {