On Sat, Jun 22, 2013 at 04:50:33PM +0800, Hu Tao wrote:
> Cc: qemu-devel@nongnu.org
> Cc: "Andreas Färber" <afaer...@suse.de>
> Cc: Paolo Bonzini <pbonz...@redhat.com>
> Cc: Anthony Liguori <aligu...@us.ibm.com>
> Cc: Igor Mammedov <imamm...@redhat.com>
> Cc: Eduardo Habkost <ehabk...@redhat.com>
> Signed-off-by: Hu Tao <hu...@cn.fujitsu.com>
> ---
>  hw/i386/kvm/clock.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/hw/i386/kvm/clock.c b/hw/i386/kvm/clock.c
> index 87d4d0f..74aa240 100644
> --- a/hw/i386/kvm/clock.c
> +++ b/hw/i386/kvm/clock.c
> @@ -87,12 +87,11 @@ static void kvmclock_vm_state_change(void *opaque, int 
> running,
>      }
>  }
>  
> -static int kvmclock_init(SysBusDevice *dev)
> +static void kvmclock_realize(DeviceState *dev, Error **errp)
>  {
> -    KVMClockState *s = FROM_SYSBUS(KVMClockState, dev);
> +    KVMClockState *s = DO_UPCAST(KVMClockState, busdev.qdev, dev);
>  
>      qemu_add_vm_change_state_handler(kvmclock_vm_state_change, s);
> -    return 0;
>  }
>  
>  static const VMStateDescription kvmclock_vmsd = {
> @@ -111,9 +110,8 @@ static const VMStateDescription kvmclock_vmsd = {
>  static void kvmclock_class_init(ObjectClass *klass, void *data)
>  {
>      DeviceClass *dc = DEVICE_CLASS(klass);
> -    SysBusDeviceClass *k = SYS_BUS_DEVICE_CLASS(klass);
>  
> -    k->init = kvmclock_init;
> +    dc->realize = kvmclock_realize;

Is TYPE_SYS_BUS_DEVICE guaranteed to never override ->realize() itself?

>From DeviceClass documentation:

 * If a type derived directly from TYPE_DEVICE implements @realize, it does
 * not need to implement @init and therefore does not need to store and call
 * #DeviceClass' default @realize callback.
 * For other types consult the documentation and implementation of the
 * respective parent types.

The problem is that there's no documentation about ->realize() on
SysBusDeviceClass. Can we please explicitly document SysBusDeviceClass
expectations about ->realize() first, before making those changes?


>      dc->no_user = 1;
>      dc->vmsd = &kvmclock_vmsd;
>  }
> -- 
> 1.8.3.1
> 
> 

-- 
Eduardo

Reply via email to