From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:51255) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S0yqX-0008Ll-J6 for qemu-devel@nongnu.org; Fri, 24 Feb 2012 12:22:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S0yqR-00073U-Bg for qemu-devel@nongnu.org; Fri, 24 Feb 2012 12:22:17 -0500 Received: from mail-pw0-f45.google.com ([209.85.160.45]:36928) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S0yqR-00073O-2A for qemu-devel@nongnu.org; Fri, 24 Feb 2012 12:22:11 -0500 Received: by pbbro12 with SMTP id ro12so3398661pbb.4 for ; Fri, 24 Feb 2012 09:22:10 -0800 (PST) Message-ID: <4F47C73E.6030105@codemonkey.ws> Date: Fri, 24 Feb 2012 11:22:06 -0600 From: Anthony Liguori MIME-Version: 1.0 References: <1330028546-13183-1-git-send-email-mdroth@linux.vnet.ibm.com> <1330028546-13183-7-git-send-email-mdroth@linux.vnet.ibm.com> In-Reply-To: <1330028546-13183-7-git-send-email-mdroth@linux.vnet.ibm.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v2 6/6] qdev: switch property accessors to fixed-width visitor interfaces List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Michael Roth Cc: pbonzini@redhat.com, qemu-devel@nongnu.org According to git bisect and qemu-test, this breaks: qemu-system-x86_64 -kernel bin/vmlinuz-3.0 -initrd .tmp-26227/initramfs-26227.img.gz -append console=ttyS0 seed=1498 -nographic -enable-kvm -device virtio-balloon-pci,id=balloon0 -pidfile .tmp-26227/pidfile-26227.pid -qmp unix:.tmp-26227/qmpsock-26227.sock,server,nowait qemu-system-x86_64: Parameter 'id' expects int8_t Aborted Regards, Anthony Liguori On 02/23/2012 02:22 PM, Michael Roth wrote: > Signed-off-by: Michael Roth > --- > hw/qdev-addr.c | 4 ++-- > hw/qdev-properties.c | 42 +++++++++++++++++------------------------- > 2 files changed, 19 insertions(+), 27 deletions(-) > > diff --git a/hw/qdev-addr.c b/hw/qdev-addr.c > index 0bb16c7..b711b6b 100644 > --- a/hw/qdev-addr.c > +++ b/hw/qdev-addr.c > @@ -27,7 +27,7 @@ static void get_taddr(Object *obj, Visitor *v, void *opaque, > int64_t value; > > value = *ptr; > - visit_type_int(v,&value, name, errp); > + visit_type_int64(v,&value, name, errp); > } > > static void set_taddr(Object *obj, Visitor *v, void *opaque, > @@ -44,7 +44,7 @@ static void set_taddr(Object *obj, Visitor *v, void *opaque, > return; > } > > - visit_type_int(v,&value, name,&local_err); > + visit_type_int64(v,&value, name,&local_err); > if (local_err) { > error_propagate(errp, local_err); > return; > diff --git a/hw/qdev-properties.c b/hw/qdev-properties.c > index 0423af1..98d95fb 100644 > --- a/hw/qdev-properties.c > +++ b/hw/qdev-properties.c > @@ -82,10 +82,8 @@ static void get_int8(Object *obj, Visitor *v, void *opaque, > DeviceState *dev = DEVICE(obj); > Property *prop = opaque; > int8_t *ptr = qdev_get_prop_ptr(dev, prop); > - int64_t value; > > - value = *ptr; > - visit_type_int(v,&value, name, errp); > + visit_type_int8(v, ptr, name, errp); > } > > static void set_int8(Object *obj, Visitor *v, void *opaque, > @@ -93,16 +91,15 @@ static void set_int8(Object *obj, Visitor *v, void *opaque, > { > DeviceState *dev = DEVICE(obj); > Property *prop = opaque; > - int8_t *ptr = qdev_get_prop_ptr(dev, prop); > + int8_t value, *ptr = qdev_get_prop_ptr(dev, prop); > Error *local_err = NULL; > - int64_t value; > > if (dev->state != DEV_STATE_CREATED) { > error_set(errp, QERR_PERMISSION_DENIED); > return; > } > > - visit_type_int(v,&value, name,&local_err); > + visit_type_int8(v,&value, name,&local_err); > if (local_err) { > error_propagate(errp, local_err); > return; > @@ -111,7 +108,7 @@ static void set_int8(Object *obj, Visitor *v, void *opaque, > *ptr = value; > } else { > error_set(errp, QERR_PROPERTY_VALUE_OUT_OF_RANGE, > - dev->id?:"", name, value, prop->info->min, > + dev->id?:"", name, (int64_t)value, prop->info->min, > prop->info->max); > } > } > @@ -168,10 +165,8 @@ static void get_int16(Object *obj, Visitor *v, void *opaque, > DeviceState *dev = DEVICE(obj); > Property *prop = opaque; > int16_t *ptr = qdev_get_prop_ptr(dev, prop); > - int64_t value; > > - value = *ptr; > - visit_type_int(v,&value, name, errp); > + visit_type_int16(v, ptr, name, errp); > } > > static void set_int16(Object *obj, Visitor *v, void *opaque, > @@ -179,16 +174,15 @@ static void set_int16(Object *obj, Visitor *v, void *opaque, > { > DeviceState *dev = DEVICE(obj); > Property *prop = opaque; > - int16_t *ptr = qdev_get_prop_ptr(dev, prop); > + int16_t value, *ptr = qdev_get_prop_ptr(dev, prop); > Error *local_err = NULL; > - int64_t value; > > if (dev->state != DEV_STATE_CREATED) { > error_set(errp, QERR_PERMISSION_DENIED); > return; > } > > - visit_type_int(v,&value, name,&local_err); > + visit_type_int16(v,&value, name,&local_err); > if (local_err) { > error_propagate(errp, local_err); > return; > @@ -197,7 +191,7 @@ static void set_int16(Object *obj, Visitor *v, void *opaque, > *ptr = value; > } else { > error_set(errp, QERR_PROPERTY_VALUE_OUT_OF_RANGE, > - dev->id?:"", name, value, prop->info->min, > + dev->id?:"", name, (int64_t)value, prop->info->min, > prop->info->max); > } > } > @@ -217,11 +211,10 @@ static void get_int32(Object *obj, Visitor *v, void *opaque, > { > DeviceState *dev = DEVICE(obj); > Property *prop = opaque; > - int32_t *ptr = qdev_get_prop_ptr(dev, prop); > - int64_t value; > + int32_t value, *ptr = qdev_get_prop_ptr(dev, prop); > > value = *ptr; > - visit_type_int(v,&value, name, errp); > + visit_type_int32(v,&value, name, errp); > } > > static void set_int32(Object *obj, Visitor *v, void *opaque, > @@ -229,16 +222,15 @@ static void set_int32(Object *obj, Visitor *v, void *opaque, > { > DeviceState *dev = DEVICE(obj); > Property *prop = opaque; > - int32_t *ptr = qdev_get_prop_ptr(dev, prop); > + int32_t value, *ptr = qdev_get_prop_ptr(dev, prop); > Error *local_err = NULL; > - int64_t value; > > if (dev->state != DEV_STATE_CREATED) { > error_set(errp, QERR_PERMISSION_DENIED); > return; > } > > - visit_type_int(v,&value, name,&local_err); > + visit_type_int32(v,&value, name,&local_err); > if (local_err) { > error_propagate(errp, local_err); > return; > @@ -247,7 +239,7 @@ static void set_int32(Object *obj, Visitor *v, void *opaque, > *ptr = value; > } else { > error_set(errp, QERR_PROPERTY_VALUE_OUT_OF_RANGE, > - dev->id?:"", name, value, prop->info->min, > + dev->id?:"", name, (int64_t)value, prop->info->min, > prop->info->max); > } > } > @@ -313,7 +305,7 @@ static void get_int64(Object *obj, Visitor *v, void *opaque, > Property *prop = opaque; > int64_t *ptr = qdev_get_prop_ptr(dev, prop); > > - visit_type_int(v, ptr, name, errp); > + visit_type_int64(v, ptr, name, errp); > } > > static void set_int64(Object *obj, Visitor *v, void *opaque, > @@ -328,7 +320,7 @@ static void set_int64(Object *obj, Visitor *v, void *opaque, > return; > } > > - visit_type_int(v, ptr, name, errp); > + visit_type_int64(v, ptr, name, errp); > } > > PropertyInfo qdev_prop_uint64 = { > @@ -649,7 +641,7 @@ static void get_vlan(Object *obj, Visitor *v, void *opaque, > int64_t id; > > id = *ptr ? (*ptr)->id : -1; > - visit_type_int(v,&id, name, errp); > + visit_type_int64(v,&id, name, errp); > } > > static void set_vlan(Object *obj, Visitor *v, void *opaque, > @@ -667,7 +659,7 @@ static void set_vlan(Object *obj, Visitor *v, void *opaque, > return; > } > > - visit_type_int(v,&id, name,&local_err); > + visit_type_int64(v,&id, name,&local_err); > if (local_err) { > error_propagate(errp, local_err); > return;