qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 27/30] virtio-rng: Convert to QOM realize


From: Andreas Färber
Subject: Re: [Qemu-devel] [PATCH 27/30] virtio-rng: Convert to QOM realize
Date: Fri, 29 Nov 2013 17:10:57 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0

Am 29.11.2013 11:17, schrieb Paolo Bonzini:
> From: Andreas Färber <address@hidden>
> 
> Signed-off-by: Andreas Färber <address@hidden>
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
>  hw/virtio/virtio-rng.c         | 24 +++++++++++-------------
>  include/hw/virtio/virtio-rng.h |  2 ++
>  2 files changed, 13 insertions(+), 13 deletions(-)
> 
> diff --git a/hw/virtio/virtio-rng.c b/hw/virtio/virtio-rng.c
> index 9e2a66a..fd61cb2 100644
> --- a/hw/virtio/virtio-rng.c
> +++ b/hw/virtio/virtio-rng.c
> @@ -133,16 +133,16 @@ static void check_rate_limit(void *opaque)
>                     qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + 
> vrng->conf.period_ms);
>  }
>  
> -static int virtio_rng_device_init(VirtIODevice *vdev)
> +static void virtio_rng_device_realize(DeviceState *dev, Error **errp)
>  {
> -    DeviceState *dev = DEVICE(vdev);
> +    VirtIODevice *vdev = VIRTIO_DEVICE(dev);
>      VirtIORNG *vrng = VIRTIO_RNG(dev);
>      Error *local_err = NULL;
>  
>      if (!vrng->conf.period_ms > 0) {
> -        qerror_report(QERR_INVALID_PARAMETER_VALUE, "period",
> -                      "a positive number");
> -        return -1;
> +        error_set(errp, QERR_INVALID_PARAMETER_VALUE, "period",
> +                  "a positive number");
> +        return;

This matches the rebase I did last night, thanks. However...

>      }
>  
>      if (vrng->conf.rng == NULL) {
> @@ -162,15 +162,14 @@ static int virtio_rng_device_init(VirtIODevice *vdev)
>  
>      vrng->rng = vrng->conf.rng;
>      if (vrng->rng == NULL) {
> -        qerror_report(QERR_INVALID_PARAMETER_VALUE, "rng", "a valid object");
> -        return -1;
> +        error_set(errp, QERR_INVALID_PARAMETER_VALUE, "rng", "a valid 
> object");
> +        return;
>      }
>  
>      rng_backend_open(vrng->rng, &local_err);
>      if (local_err) {
> -        qerror_report_err(local_err);
> -        error_free(local_err);
> -        return -1;
> +        error_propagate(errp, local_err);
> +        return;
>      }
>  
>      vrng->vq = virtio_add_queue(vdev, 8, handle_input);
> @@ -186,8 +185,6 @@ static int virtio_rng_device_init(VirtIODevice *vdev)
>  
>      register_savevm(dev, "virtio-rng", -1, 1, virtio_rng_save,
>                      virtio_rng_load, vrng);
> -
> -    return 0;
>  }
>  
>  static void virtio_rng_device_exit(VirtIODevice *vdev)
> @@ -209,9 +206,10 @@ static void virtio_rng_class_init(ObjectClass *klass, 
> void *data)
>  {
>      DeviceClass *dc = DEVICE_CLASS(klass);
>      VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass);
> +
>      dc->props = virtio_rng_properties;
>      set_bit(DEVICE_CATEGORY_MISC, dc->categories);
> -    vdc->init = virtio_rng_device_init;
> +    vdc->realize = virtio_rng_device_realize;
>      vdc->exit = virtio_rng_device_exit;
>      vdc->get_features = get_features;
>  }
> diff --git a/include/hw/virtio/virtio-rng.h b/include/hw/virtio/virtio-rng.h
> index debaa15..14e85a5 100644
> --- a/include/hw/virtio/virtio-rng.h
> +++ b/include/hw/virtio/virtio-rng.h
> @@ -18,6 +18,8 @@
>  #define TYPE_VIRTIO_RNG "virtio-rng-device"
>  #define VIRTIO_RNG(obj) \
>          OBJECT_CHECK(VirtIORNG, (obj), TYPE_VIRTIO_RNG)
> +#define VIRTIO_RNG_GET_PARENT_CLASS(obj) \
> +        OBJECT_GET_PARENT_CLASS(obj, TYPE_VIRTIO_RNG)
>  
>  /* The Virtio ID for the virtio rng device */
>  #define VIRTIO_ID_RNG    4

This hunk seems a leftover from v2. How to proceed?

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



reply via email to

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