diff mbox

[5/5] xen-pvdevice: convert to realize()

Message ID 1450436632-23980-6-git-send-email-caoj.fnst@cn.fujitsu.com
State New
Headers show

Commit Message

Cao jin Dec. 18, 2015, 11:03 a.m. UTC
Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
---
 hw/i386/xen/xen_pvdevice.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

Comments

Paolo Bonzini Dec. 18, 2015, 6 p.m. UTC | #1
CCing Stefano, who is the maintainer.

Paolo

On 18/12/2015 12:03, Cao jin wrote:
> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
> ---
>  hw/i386/xen/xen_pvdevice.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/hw/i386/xen/xen_pvdevice.c b/hw/i386/xen/xen_pvdevice.c
> index c218947..a6c93d0 100644
> --- a/hw/i386/xen/xen_pvdevice.c
> +++ b/hw/i386/xen/xen_pvdevice.c
> @@ -69,14 +69,16 @@ static const MemoryRegionOps xen_pv_mmio_ops = {
>      .endianness = DEVICE_LITTLE_ENDIAN,
>  };
>  
> -static int xen_pv_init(PCIDevice *pci_dev)
> +static void xen_pv_realize(PCIDevice *pci_dev, Error **errp)
>  {
>      XenPVDevice *d = XEN_PV_DEVICE(pci_dev);
>      uint8_t *pci_conf;
>  
>      /* device-id property must always be supplied */
> -    if (d->device_id == 0xffff)
> -	    return -1;
> +    if (d->device_id == 0xffff) {
> +        error_setg(errp, "Device ID invalid, it must always be supplied")
> +	return;
> +    }
>  
>      pci_conf = pci_dev->config;
>  
> @@ -97,8 +99,6 @@ static int xen_pv_init(PCIDevice *pci_dev)
>  
>      pci_register_bar(pci_dev, 1, PCI_BASE_ADDRESS_MEM_PREFETCH,
>                       &d->mmio);
> -
> -    return 0;
>  }
>  
>  static Property xen_pv_props[] = {
> @@ -114,7 +114,7 @@ static void xen_pv_class_init(ObjectClass *klass, void *data)
>      DeviceClass *dc = DEVICE_CLASS(klass);
>      PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
>  
> -    k->init = xen_pv_init;
> +    k->realize = xen_pv_realize;
>      k->class_id = PCI_CLASS_SYSTEM_OTHER;
>      dc->desc = "Xen PV Device";
>      dc->props = xen_pv_props;
>
Cao jin Dec. 21, 2015, 5:52 a.m. UTC | #2
On 12/19/2015 02:00 AM, Paolo Bonzini wrote:
> CCing Stefano, who is the maintainer.
>

"Stefano" isn`t in the list when I use scripts/get_maintainer.pl...

> Paolo
>
> On 18/12/2015 12:03, Cao jin wrote:
>> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
>> ---
>>   hw/i386/xen/xen_pvdevice.c | 12 ++++++------
>>   1 file changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/hw/i386/xen/xen_pvdevice.c b/hw/i386/xen/xen_pvdevice.c
>> index c218947..a6c93d0 100644
>> --- a/hw/i386/xen/xen_pvdevice.c
>> +++ b/hw/i386/xen/xen_pvdevice.c
>> @@ -69,14 +69,16 @@ static const MemoryRegionOps xen_pv_mmio_ops = {
>>       .endianness = DEVICE_LITTLE_ENDIAN,
>>   };
>>
>> -static int xen_pv_init(PCIDevice *pci_dev)
>> +static void xen_pv_realize(PCIDevice *pci_dev, Error **errp)
>>   {
>>       XenPVDevice *d = XEN_PV_DEVICE(pci_dev);
>>       uint8_t *pci_conf;
>>
>>       /* device-id property must always be supplied */
>> -    if (d->device_id == 0xffff)
>> -	    return -1;
>> +    if (d->device_id == 0xffff) {
>> +        error_setg(errp, "Device ID invalid, it must always be supplied")
>> +	return;
>> +    }
>>
>>       pci_conf = pci_dev->config;
>>
>> @@ -97,8 +99,6 @@ static int xen_pv_init(PCIDevice *pci_dev)
>>
>>       pci_register_bar(pci_dev, 1, PCI_BASE_ADDRESS_MEM_PREFETCH,
>>                        &d->mmio);
>> -
>> -    return 0;
>>   }
>>
>>   static Property xen_pv_props[] = {
>> @@ -114,7 +114,7 @@ static void xen_pv_class_init(ObjectClass *klass, void *data)
>>       DeviceClass *dc = DEVICE_CLASS(klass);
>>       PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
>>
>> -    k->init = xen_pv_init;
>> +    k->realize = xen_pv_realize;
>>       k->class_id = PCI_CLASS_SYSTEM_OTHER;
>>       dc->desc = "Xen PV Device";
>>       dc->props = xen_pv_props;
>>
>
>
> .
>
Stefano Stabellini Dec. 21, 2015, 3 p.m. UTC | #3
On Mon, 21 Dec 2015, Cao jin wrote:
> On 12/19/2015 02:00 AM, Paolo Bonzini wrote:
> > CCing Stefano, who is the maintainer.
> > 
> 
> "Stefano" isn`t in the list when I use scripts/get_maintainer.pl...

Thanks Cao. I have just sent a patch to update the MAINTAINERS file.

http://marc.info/?l=qemu-devel&m=145070996302064&w=2



> > 
> > On 18/12/2015 12:03, Cao jin wrote:
> > > Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
> > > ---
> > >   hw/i386/xen/xen_pvdevice.c | 12 ++++++------
> > >   1 file changed, 6 insertions(+), 6 deletions(-)
> > > 
> > > diff --git a/hw/i386/xen/xen_pvdevice.c b/hw/i386/xen/xen_pvdevice.c
> > > index c218947..a6c93d0 100644
> > > --- a/hw/i386/xen/xen_pvdevice.c
> > > +++ b/hw/i386/xen/xen_pvdevice.c
> > > @@ -69,14 +69,16 @@ static const MemoryRegionOps xen_pv_mmio_ops = {
> > >       .endianness = DEVICE_LITTLE_ENDIAN,
> > >   };
> > > 
> > > -static int xen_pv_init(PCIDevice *pci_dev)
> > > +static void xen_pv_realize(PCIDevice *pci_dev, Error **errp)
> > >   {
> > >       XenPVDevice *d = XEN_PV_DEVICE(pci_dev);
> > >       uint8_t *pci_conf;
> > > 
> > >       /* device-id property must always be supplied */
> > > -    if (d->device_id == 0xffff)
> > > -	    return -1;
> > > +    if (d->device_id == 0xffff) {
> > > +        error_setg(errp, "Device ID invalid, it must always be supplied")
> > > +	return;
> > > +    }
> > > 
> > >       pci_conf = pci_dev->config;
> > > 
> > > @@ -97,8 +99,6 @@ static int xen_pv_init(PCIDevice *pci_dev)
> > > 
> > >       pci_register_bar(pci_dev, 1, PCI_BASE_ADDRESS_MEM_PREFETCH,
> > >                        &d->mmio);
> > > -
> > > -    return 0;
> > >   }
> > > 
> > >   static Property xen_pv_props[] = {
> > > @@ -114,7 +114,7 @@ static void xen_pv_class_init(ObjectClass *klass, void
> > > *data)
> > >       DeviceClass *dc = DEVICE_CLASS(klass);
> > >       PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
> > > 
> > > -    k->init = xen_pv_init;
> > > +    k->realize = xen_pv_realize;
> > >       k->class_id = PCI_CLASS_SYSTEM_OTHER;
> > >       dc->desc = "Xen PV Device";
> > >       dc->props = xen_pv_props;
> > > 
> > 
> > 
> > .
> > 
> 
> -- 
> Yours Sincerely,
> 
> Cao Jin
> 
> 
>
Stefano Stabellini Dec. 21, 2015, 3:15 p.m. UTC | #4
On Fri, 18 Dec 2015, Cao jin wrote:
> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
> ---
>  hw/i386/xen/xen_pvdevice.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/hw/i386/xen/xen_pvdevice.c b/hw/i386/xen/xen_pvdevice.c
> index c218947..a6c93d0 100644
> --- a/hw/i386/xen/xen_pvdevice.c
> +++ b/hw/i386/xen/xen_pvdevice.c
> @@ -69,14 +69,16 @@ static const MemoryRegionOps xen_pv_mmio_ops = {
>      .endianness = DEVICE_LITTLE_ENDIAN,
>  };
>  
> -static int xen_pv_init(PCIDevice *pci_dev)
> +static void xen_pv_realize(PCIDevice *pci_dev, Error **errp)
>  {
>      XenPVDevice *d = XEN_PV_DEVICE(pci_dev);
>      uint8_t *pci_conf;
>  
>      /* device-id property must always be supplied */
> -    if (d->device_id == 0xffff)
> -	    return -1;
> +    if (d->device_id == 0xffff) {
> +        error_setg(errp, "Device ID invalid, it must always be supplied")

This doesn't even compile: you are missing a ';'

Please at least build test patches.


> +	return;

I realize that there was a tab before there, but please use spaces for
indentation.


> +    }
>  
>      pci_conf = pci_dev->config;
>  
> @@ -97,8 +99,6 @@ static int xen_pv_init(PCIDevice *pci_dev)
>  
>      pci_register_bar(pci_dev, 1, PCI_BASE_ADDRESS_MEM_PREFETCH,
>                       &d->mmio);
> -
> -    return 0;
>  }
>  
>  static Property xen_pv_props[] = {
> @@ -114,7 +114,7 @@ static void xen_pv_class_init(ObjectClass *klass, void *data)
>      DeviceClass *dc = DEVICE_CLASS(klass);
>      PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
>  
> -    k->init = xen_pv_init;
> +    k->realize = xen_pv_realize;
>      k->class_id = PCI_CLASS_SYSTEM_OTHER;
>      dc->desc = "Xen PV Device";
>      dc->props = xen_pv_props;
> -- 
> 2.1.0
> 
> 
> 
>
Cao jin Dec. 22, 2015, 1:24 a.m. UTC | #5
On 12/21/2015 11:15 PM, Stefano Stabellini wrote:
> On Fri, 18 Dec 2015, Cao jin wrote:
>> Signed-off-by: Cao jin <caoj.fnst@cn.fujitsu.com>
>> ---
>>   hw/i386/xen/xen_pvdevice.c | 12 ++++++------
>>   1 file changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/hw/i386/xen/xen_pvdevice.c b/hw/i386/xen/xen_pvdevice.c
>> index c218947..a6c93d0 100644
>> --- a/hw/i386/xen/xen_pvdevice.c
>> +++ b/hw/i386/xen/xen_pvdevice.c
>> @@ -69,14 +69,16 @@ static const MemoryRegionOps xen_pv_mmio_ops = {
>>       .endianness = DEVICE_LITTLE_ENDIAN,
>>   };
>>
>> -static int xen_pv_init(PCIDevice *pci_dev)
>> +static void xen_pv_realize(PCIDevice *pci_dev, Error **errp)
>>   {
>>       XenPVDevice *d = XEN_PV_DEVICE(pci_dev);
>>       uint8_t *pci_conf;
>>
>>       /* device-id property must always be supplied */
>> -    if (d->device_id == 0xffff)
>> -	    return -1;
>> +    if (d->device_id == 0xffff) {
>> +        error_setg(errp, "Device ID invalid, it must always be supplied")
>
> This doesn't even compile: you are missing a ';'
>
> Please at least build test patches.
>

Yup...sorry for the silly mistake...but weird, I did build and didn`t 
got error...

>
>> +	return;
>
> I realize that there was a tab before there, but please use spaces for
> indentation.
>

surprised that I didn`t recognized the tab...V2 is coming soon.

>
>> +    }
>>
>>       pci_conf = pci_dev->config;
>>
>> @@ -97,8 +99,6 @@ static int xen_pv_init(PCIDevice *pci_dev)
>>
>>       pci_register_bar(pci_dev, 1, PCI_BASE_ADDRESS_MEM_PREFETCH,
>>                        &d->mmio);
>> -
>> -    return 0;
>>   }
>>
>>   static Property xen_pv_props[] = {
>> @@ -114,7 +114,7 @@ static void xen_pv_class_init(ObjectClass *klass, void *data)
>>       DeviceClass *dc = DEVICE_CLASS(klass);
>>       PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
>>
>> -    k->init = xen_pv_init;
>> +    k->realize = xen_pv_realize;
>>       k->class_id = PCI_CLASS_SYSTEM_OTHER;
>>       dc->desc = "Xen PV Device";
>>       dc->props = xen_pv_props;
>> --
>> 2.1.0
>>
>>
>>
>>
>
>
> .
>
Cao jin Dec. 22, 2015, 2:40 a.m. UTC | #6
Hi

On 12/22/2015 09:24 AM, Cao jin wrote:
>
>
> On 12/21/2015 11:15 PM, Stefano Stabellini wrote:
>> On Fri, 18 Dec 2015, Cao jin wrote:
[...]
>>
>> This doesn't even compile: you are missing a ';'
>>
>> Please at least build test patches.
>>
>
> Yup...sorry for the silly mistake...but weird, I did build and didn`t
> got error...
>

I test with:
$ readelf -s qemu-system-x86_64 | grep xen_pv_*
got nothing, which make me realized that I don`t have xen support on my 
computer... maybe that`s why I didn`t got compile error

>>
[...]
diff mbox

Patch

diff --git a/hw/i386/xen/xen_pvdevice.c b/hw/i386/xen/xen_pvdevice.c
index c218947..a6c93d0 100644
--- a/hw/i386/xen/xen_pvdevice.c
+++ b/hw/i386/xen/xen_pvdevice.c
@@ -69,14 +69,16 @@  static const MemoryRegionOps xen_pv_mmio_ops = {
     .endianness = DEVICE_LITTLE_ENDIAN,
 };
 
-static int xen_pv_init(PCIDevice *pci_dev)
+static void xen_pv_realize(PCIDevice *pci_dev, Error **errp)
 {
     XenPVDevice *d = XEN_PV_DEVICE(pci_dev);
     uint8_t *pci_conf;
 
     /* device-id property must always be supplied */
-    if (d->device_id == 0xffff)
-	    return -1;
+    if (d->device_id == 0xffff) {
+        error_setg(errp, "Device ID invalid, it must always be supplied")
+	return;
+    }
 
     pci_conf = pci_dev->config;
 
@@ -97,8 +99,6 @@  static int xen_pv_init(PCIDevice *pci_dev)
 
     pci_register_bar(pci_dev, 1, PCI_BASE_ADDRESS_MEM_PREFETCH,
                      &d->mmio);
-
-    return 0;
 }
 
 static Property xen_pv_props[] = {
@@ -114,7 +114,7 @@  static void xen_pv_class_init(ObjectClass *klass, void *data)
     DeviceClass *dc = DEVICE_CLASS(klass);
     PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
 
-    k->init = xen_pv_init;
+    k->realize = xen_pv_realize;
     k->class_id = PCI_CLASS_SYSTEM_OTHER;
     dc->desc = "Xen PV Device";
     dc->props = xen_pv_props;