From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NFu2R-0005qP-BE for qemu-devel@nongnu.org; Wed, 02 Dec 2009 13:34:55 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NFu2M-0005iM-5A for qemu-devel@nongnu.org; Wed, 02 Dec 2009 13:34:54 -0500 Received: from [199.232.76.173] (port=60851 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NFu2M-0005i6-06 for qemu-devel@nongnu.org; Wed, 02 Dec 2009 13:34:50 -0500 Received: from mx1.redhat.com ([209.132.183.28]:8551) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NFu2L-0006Kz-FC for qemu-devel@nongnu.org; Wed, 02 Dec 2009 13:34:49 -0500 Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.13.8/8.13.8) with ESMTP id nB2IYmTc006243 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Wed, 2 Dec 2009 13:34:48 -0500 Date: Wed, 2 Dec 2009 20:32:08 +0200 From: "Michael S. Tsirkin" Message-ID: <20091202183208.GE3956@redhat.com> References: <20091202145232.GF18519@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: [Qemu-devel] Re: [PATCH 29/41] virtio-net: in_use and first_multi only handle unsigned values List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Juan Quintela Cc: qemu-devel@nongnu.org On Wed, Dec 02, 2009 at 07:30:18PM +0100, Juan Quintela wrote: > "Michael S. Tsirkin" 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 > >> --- > >> 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