qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH 29/41] virtio-net: in_use and first_multi only h


From: Michael S. Tsirkin
Subject: [Qemu-devel] Re: [PATCH 29/41] virtio-net: in_use and first_multi only handle unsigned values
Date: Wed, 2 Dec 2009 20:32:08 +0200
User-agent: Mutt/1.5.19 (2009-01-05)

On Wed, Dec 02, 2009 at 07:30:18PM +0100, Juan Quintela wrote:
> "Michael S. Tsirkin" <address@hidden> wrote:
> > On Wed, Dec 02, 2009 at 01:04:27PM +0100, Juan Quintela wrote:
> >> And they were saved/loaded as unsigned already
> >
> > I'm not sure how does on save/load a value as unsigned.
> > Could you please provide motivation for this
> > and similar changes?
> > Not that it matters very much, but int is slightly cleaner
> > than uint32_t for something that is only 1 or 0.
> >
> >> Signed-off-by: Juan Quintela <address@hidden>
> >> ---
> >>  hw/virtio-net.c |    8 ++++----
> >>  1 files changed, 4 insertions(+), 4 deletions(-)
> >> 
> >> diff --git a/hw/virtio-net.c b/hw/virtio-net.c
> >> index 05cc67f..589ea80 100644
> >> --- a/hw/virtio-net.c
> >> +++ b/hw/virtio-net.c
> >> @@ -50,8 +50,8 @@ typedef struct VirtIONet
> >>      uint8_t nouni;
> >>      uint8_t nobcast;
> >>      struct {
> >> -        int in_use;
> >> -        int first_multi;
> >> +        uint32_t in_use;
> >> +        uint32_t first_multi;
> >>          uint8_t multi_overflow;
> >>          uint8_t uni_overflow;
> >>          uint8_t *macs;
> >> @@ -715,7 +715,7 @@ static void virtio_net_save(QEMUFile *f, void *opaque)
> >>      qemu_put_be16s(f, &n->status);
> >>      qemu_put_8s(f, &n->promisc);
> >>      qemu_put_8s(f, &n->allmulti);
> >> -    qemu_put_be32(f, n->mac_table.in_use);
> 
> This is why I hate this function.
> 
> >> +    qemu_put_be32s(f, &n->mac_table.in_use);
> 
> This is the right one.
> 
> We can change things to be int32_t if that makes more sense (they were sent
> as uint32).
> 
> vmstate checks that the type of the value that you sent and the function
> that you use for sending match.  In this case, it was sending a int32_t
> with the function to send uint32_t.  In this particular case it didn't
> matter (value is 0/1).  But vmstate don't know what cases matter/don't
> matter.  It just test _always_ that you are using the right function for
> your type.
> 
> If you think that it is better to change the type of the value to
> int32_t and change the functions, that is also ok with me.
> What I care is that type of function and field are the same.
> 
> Later, Juan.

int is a better type than int32 here.
Please make the save/load functions match.
If you like, convert it to bool.

-- 
MST




reply via email to

[Prev in Thread] Current Thread [Next in Thread]