virtio-net: Add load/save for status bits
RFC PATCH 2/5 virtio-net: Add load/save for status bits
virtio-net: Add load/save for status bits
---
hw/virtio-net.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-)
hw/virtio-net.c +8 -2
@@ -16,6 +16,8 @@#include "qemu-timer.h" #include "virtio-net.h" +#define VIRTIO_VM_VERSION 2 + typedef struct VirtIONet { VirtIODevice vdev;
@@ -307,13 +309,14 @@ static void virtio_net_save(QEMUFile *f, void *opaque)qemu_put_buffer (f, n->mac,6 );qemu_put_be32 (f, n->tx_timer_active); +qemu_put_be16 (f, n->status); }static int virtio_net_load (QEMUFile *f,void *opaque,int version_id) {VirtIONet *n = opaque; -if (version_id !=1 ) +if (version_id <1 || version_id >VIRTIO_VM_VERSION )return -EINVAL ;virtio_load (&n->vdev, f);
@@ -321,6 +324,9 @@ static int virtio_net_load(QEMUFile *f, void *opaque, int version_id)qemu_get_buffer (f, n->mac,6 ); n->tx_timer_active =qemu_get_be32 (f); +if (version_id >=2 ) + n->status =qemu_get_be16 (f); +if (n->tx_timer_active) {qemu_mod_timer (n->tx_timer,qemu_get_clock (vm_clock) +TX_TIMER_INTERVAL );
@@ -363,7 +369,7 @@ PCIDevice *virtio_net_init(PCIBus *bus, NICInfo *nd, int devfn) n->tx_timer_active =0 ; n->mergeable_rx_bufs =0 ; -register_savevm ("virtio-net" , virtio_net_id++,1 , +register_savevm ("virtio-net" , virtio_net_id++,VIRTIO_VM_VERSION , virtio_net_save, virtio_net_load, n);return (PCIDevice *)n;
Quoted 13 lines · Alex Williamson
virtio-net: Add load/save for status bits
Signed-off-by Alex Williamson <[email protected]>---
hw/virtio-net.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-)hw/virtio-net.c +0
-0
hw/virtio-net.c line 21
Quoted 6 lines
hw/virtio-net.c +2
-0@@ -16,6 +16,8 @@#include "qemu-timer.h" #include "virtio-net.h" +#define VIRTIO_VM_VERSION 2 +
virtio-net is now at 2 already because of the mergable buffers fix but this is definitely needed for Mark's set_link changes.
Regards,
Anthony Liguori
RE: [Qemu-devel] [PATCH 2/5][RFC] virtio-net: Add load/save for statusbits
In reply to Alex WilliamsonQuoted 51 lines
-----Original Message-----
From:
[email protected] [mailto:[email protected] rg] On Behalf Of Alex Williamson
Sent: Wednesday, January 07, 2009 11:38 AM
To: kvm; qemu-devel
Cc: Mark McLoughlin
Subject: [Qemu-devel] [PATCH 2/5][RFC] virtio-net: Add load/save for statusbitsvirtio-net: Add load/save for status bits
Signed-off-by Alex Williamson <[email protected]>---
hw/virtio-net.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-)hw/virtio-net.c +4
-1@@ -16,6 +16,8 @@#include "qemu-timer.h" #include "virtio-net.h" +#define VIRTIO_VM_VERSION 2 + typedef struct VirtIONet { VirtIODevice vdev;@@ -307,13 +309,14 @@ static void virtio_net_save(QEMUFile *f, void *opaque)qemu_put_buffer (f, n->mac,6 );qemu_put_be32 (f, n->tx_timer_active); +qemu_put_be16 (f, n->status); }static int virtio_net_load (QEMUFile *f,void *opaque,int version_id) {VirtIONet *n = opaque; -if (version_id !=1 ) +if (version_id <1 || version_id >VIRTIO_VM_VERSION )return -EINVAL ;virtio_load(&n->vdev, f);
hw/virtio-net.c static int virtio_net_load(QEMUFile *f, · line 330
Quoted 7 lines
hw/virtio-net.c +3
-0@@ -321,6 +324,9 @@ static int virtio_net_load(QEMUFile *f, void *opaque, int version_id) qemu_get_buffer(f, n->mac, 6); n->tx_timer_active =qemu_get_be32 (f); +if (version_id >=2 ) + n->status =qemu_get_be16 (f); +
Hello,
I know this is a late reply, but just thought I would ask:
You have the magic number 2 here, and change it to three in patch 5/5, should this not be VIRTIO_VM_VERSION? Or a comment about where the number comes from.
Thanks
Chris
Quoted 18 lines
hw/virtio-net.c +0
-0if (n->tx_timer_active) { qemu_mod_timer(n->tx_timer,qemu_get_clock(vm_clock) + TX_TIMER_INTERVAL);hw/virtio-net.c +1
-1@@ -363,7 +369,7 @@ PCIDevice *virtio_net_init(PCIBus *bus, NICInfo *nd, int devfn) n->tx_timer_active = 0; n->mergeable_rx_bufs =0 ; -register_savevm ("virtio-net" , virtio_net_id++,1 , +register_savevm ("virtio-net" , virtio_net_id++,VIRTIO_VM_VERSION , virtio_net_save, virtio_net_load, n);return (PCIDevice *)n;
Re: [Qemu-devel] [PATCH 2/5][RFC] virtio-net: Add load/save for statusbits
Quoted 58 lines · Chris
Quoted 47 lines
-----Original Message-----
From: [email protected] [mailto:[email protected] rg] On Behalf Of Alex Williamson
Sent: Wednesday, January 07, 2009 11:38 AM
To: kvm; qemu-devel
Cc: Mark McLoughlin
Subject: [Qemu-devel] [PATCH 2/5][RFC] virtio-net: Add load/save for statusbitsvirtio-net: Add load/save for status bits
Signed-off-by Alex Williamson <[email protected]>---
hw/virtio-net.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-)hw/virtio-net.c +4
-1@@ -16,6 +16,8 @@#include "qemu-timer.h" #include "virtio-net.h" +#define VIRTIO_VM_VERSION 2 + typedef struct VirtIONet { VirtIODevice vdev;@@ -307,13 +309,14 @@ static void virtio_net_save(QEMUFile *f, void *opaque)qemu_put_buffer (f, n->mac,6 );qemu_put_be32 (f, n->tx_timer_active); +qemu_put_be16 (f, n->status); }static int virtio_net_load (QEMUFile *f,void *opaque,int version_id) {VirtIONet *n = opaque; -if (version_id !=1 ) +if (version_id <1 || version_id >VIRTIO_VM_VERSION )return -EINVAL ;virtio_load(&n->vdev, f);hw/virtio-net.c static int virtio_net_load(QEMUFile *f, · line 331
Quoted 8 lines
hw/virtio-net.c +3
-0@@ -321,6 +324,9 @@ static int virtio_net_load(QEMUFile *f, void *opaque, int version_id) qemu_get_buffer(f, n->mac, 6); n->tx_timer_active =qemu_get_be32 (f); +if (version_id >=2 ) + n->status =qemu_get_be16 (f); +Hello,
Quoted 7 lines
I know this is a late reply, but just thought I would ask:
You have the magic number 2 here, and change it to three in patch 5/5, should this not be
VIRTIO_VM_VERSION? Or a comment about where the number comes from.
It is the version of the stated saved for virtio net device. The driver does not know anything about it. The version number syncs between the source & destination qemu. The numbering started with '1' and we increase it each time we save a new field.
Quoted 4 lines
Thanks
Chris