Re: [PATCH RESEND 1/2] hw/vfio/pci-quirks: Resolve redundant property getters

2022-03-23 Thread Bernhard Beschow
Am 21. März 2022 13:06:29 UTC schrieb "Philippe Mathieu-Daudé" 
:
>On 21/3/22 11:57, Bernhard Beschow wrote:
>> Am 1. März 2022 22:52:19 UTC schrieb Bernhard Beschow :
>>> The QOM API already provides getters for uint64 and uint32 values, so reuse
>>> them.
>>>
>>> Signed-off-by: Bernhard Beschow 
>>> Reviewed-by: Philippe Mathieu-Daudé 
>>> ---
>>> hw/vfio/pci-quirks.c | 34 +-
>>> 1 file changed, 9 insertions(+), 25 deletions(-)
>>>
>>> diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c
>>> index 0cf69a8c6d..f0147a050a 100644
>>> --- a/hw/vfio/pci-quirks.c
>>> +++ b/hw/vfio/pci-quirks.c
>>> @@ -1565,22 +1565,6 @@ static int vfio_add_nv_gpudirect_cap(VFIOPCIDevice 
>>> *vdev, Error **errp)
>>>  return 0;
>>> }
>>>
>>> -static void vfio_pci_nvlink2_get_tgt(Object *obj, Visitor *v,
>>> - const char *name,
>>> - void *opaque, Error **errp)
>>> -{
>>> -uint64_t tgt = (uintptr_t) opaque;
>>> -visit_type_uint64(v, name, , errp);
>>> -}
>>> -
>>> -static void vfio_pci_nvlink2_get_link_speed(Object *obj, Visitor *v,
>>> - const char *name,
>>> - void *opaque, Error 
>>> **errp)
>>> -{
>>> -uint32_t link_speed = (uint32_t)(uintptr_t) opaque;
>>> -visit_type_uint32(v, name, _speed, errp);
>>> -}
>>> -
>>> int vfio_pci_nvidia_v100_ram_init(VFIOPCIDevice *vdev, Error **errp)
>>> {
>>>  int ret;
>>> @@ -1618,9 +1602,9 @@ int vfio_pci_nvidia_v100_ram_init(VFIOPCIDevice 
>>> *vdev, Error **errp)
>>> nv2reg->size, p);
>>>  QLIST_INSERT_HEAD(>bars[0].quirks, quirk, next);
>>>
>>> -object_property_add(OBJECT(vdev), "nvlink2-tgt", "uint64",
>>> -vfio_pci_nvlink2_get_tgt, NULL, NULL,
>>> -(void *) (uintptr_t) cap->tgt);
>>> +object_property_add_uint64_ptr(OBJECT(vdev), "nvlink2-tgt",
>>> +   (uint64_t *) >tgt,
>>> +   OBJ_PROP_FLAG_READ);
>>>  trace_vfio_pci_nvidia_gpu_setup_quirk(vdev->vbasedev.name, cap->tgt,
>>>nv2reg->size);
>>> free_exit:
>>> @@ -1679,15 +1663,15 @@ int vfio_pci_nvlink2_init(VFIOPCIDevice *vdev, 
>>> Error **errp)
>>>  QLIST_INSERT_HEAD(>bars[0].quirks, quirk, next);
>>>  }
>>>
>>> -object_property_add(OBJECT(vdev), "nvlink2-tgt", "uint64",
>>> -vfio_pci_nvlink2_get_tgt, NULL, NULL,
>>> -(void *) (uintptr_t) captgt->tgt);
>>> +object_property_add_uint64_ptr(OBJECT(vdev), "nvlink2-tgt",
>>> +   (uint64_t *) >tgt,
>>> +   OBJ_PROP_FLAG_READ);
>>>  trace_vfio_pci_nvlink2_setup_quirk_ssatgt(vdev->vbasedev.name, 
>>> captgt->tgt,
>>>atsdreg->size);
>>>
>>> -object_property_add(OBJECT(vdev), "nvlink2-link-speed", "uint32",
>>> -vfio_pci_nvlink2_get_link_speed, NULL, NULL,
>>> -(void *) (uintptr_t) capspeed->link_speed);
>>> +object_property_add_uint32_ptr(OBJECT(vdev), "nvlink2-link-speed",
>>> +   >link_speed,
>>> +   OBJ_PROP_FLAG_READ);
>>>  trace_vfio_pci_nvlink2_setup_quirk_lnkspd(vdev->vbasedev.name,
>>>capspeed->link_speed);
>>> free_exit:
>> 
>> Ping
>> 
>> @Alistair: When resending, I accidently added a Reviewed-by with your name 
>> here which I asked to be ignored *after* you re-acked patch 2/2. In case you 
>> intended to ack this patch as well your voice would be needed again.
>
>FWIW I expect these patches to get merged via the qemu-trivial@ tree
>once the 7.1 development window opens.

Excellent!

Best regards,
Bernhard




Re: [PATCH RESEND 1/2] hw/vfio/pci-quirks: Resolve redundant property getters

2022-03-21 Thread Philippe Mathieu-Daudé

On 21/3/22 11:57, Bernhard Beschow wrote:

Am 1. März 2022 22:52:19 UTC schrieb Bernhard Beschow :

The QOM API already provides getters for uint64 and uint32 values, so reuse
them.

Signed-off-by: Bernhard Beschow 
Reviewed-by: Philippe Mathieu-Daudé 
---
hw/vfio/pci-quirks.c | 34 +-
1 file changed, 9 insertions(+), 25 deletions(-)

diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c
index 0cf69a8c6d..f0147a050a 100644
--- a/hw/vfio/pci-quirks.c
+++ b/hw/vfio/pci-quirks.c
@@ -1565,22 +1565,6 @@ static int vfio_add_nv_gpudirect_cap(VFIOPCIDevice 
*vdev, Error **errp)
 return 0;
}

-static void vfio_pci_nvlink2_get_tgt(Object *obj, Visitor *v,
- const char *name,
- void *opaque, Error **errp)
-{
-uint64_t tgt = (uintptr_t) opaque;
-visit_type_uint64(v, name, , errp);
-}
-
-static void vfio_pci_nvlink2_get_link_speed(Object *obj, Visitor *v,
- const char *name,
- void *opaque, Error **errp)
-{
-uint32_t link_speed = (uint32_t)(uintptr_t) opaque;
-visit_type_uint32(v, name, _speed, errp);
-}
-
int vfio_pci_nvidia_v100_ram_init(VFIOPCIDevice *vdev, Error **errp)
{
 int ret;
@@ -1618,9 +1602,9 @@ int vfio_pci_nvidia_v100_ram_init(VFIOPCIDevice *vdev, 
Error **errp)
nv2reg->size, p);
 QLIST_INSERT_HEAD(>bars[0].quirks, quirk, next);

-object_property_add(OBJECT(vdev), "nvlink2-tgt", "uint64",
-vfio_pci_nvlink2_get_tgt, NULL, NULL,
-(void *) (uintptr_t) cap->tgt);
+object_property_add_uint64_ptr(OBJECT(vdev), "nvlink2-tgt",
+   (uint64_t *) >tgt,
+   OBJ_PROP_FLAG_READ);
 trace_vfio_pci_nvidia_gpu_setup_quirk(vdev->vbasedev.name, cap->tgt,
   nv2reg->size);
free_exit:
@@ -1679,15 +1663,15 @@ int vfio_pci_nvlink2_init(VFIOPCIDevice *vdev, Error 
**errp)
 QLIST_INSERT_HEAD(>bars[0].quirks, quirk, next);
 }

-object_property_add(OBJECT(vdev), "nvlink2-tgt", "uint64",
-vfio_pci_nvlink2_get_tgt, NULL, NULL,
-(void *) (uintptr_t) captgt->tgt);
+object_property_add_uint64_ptr(OBJECT(vdev), "nvlink2-tgt",
+   (uint64_t *) >tgt,
+   OBJ_PROP_FLAG_READ);
 trace_vfio_pci_nvlink2_setup_quirk_ssatgt(vdev->vbasedev.name, captgt->tgt,
   atsdreg->size);

-object_property_add(OBJECT(vdev), "nvlink2-link-speed", "uint32",
-vfio_pci_nvlink2_get_link_speed, NULL, NULL,
-(void *) (uintptr_t) capspeed->link_speed);
+object_property_add_uint32_ptr(OBJECT(vdev), "nvlink2-link-speed",
+   >link_speed,
+   OBJ_PROP_FLAG_READ);
 trace_vfio_pci_nvlink2_setup_quirk_lnkspd(vdev->vbasedev.name,
   capspeed->link_speed);
free_exit:


Ping

@Alistair: When resending, I accidently added a Reviewed-by with your name here 
which I asked to be ignored *after* you re-acked patch 2/2. In case you 
intended to ack this patch as well your voice would be needed again.


FWIW I expect these patches to get merged via the qemu-trivial@ tree
once the 7.1 development window opens.



Re: [PATCH RESEND 1/2] hw/vfio/pci-quirks: Resolve redundant property getters

2022-03-21 Thread Bernhard Beschow
Am 1. März 2022 22:52:19 UTC schrieb Bernhard Beschow :
>The QOM API already provides getters for uint64 and uint32 values, so reuse
>them.
>
>Signed-off-by: Bernhard Beschow 
>Reviewed-by: Philippe Mathieu-Daudé 
>---
> hw/vfio/pci-quirks.c | 34 +-
> 1 file changed, 9 insertions(+), 25 deletions(-)
>
>diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c
>index 0cf69a8c6d..f0147a050a 100644
>--- a/hw/vfio/pci-quirks.c
>+++ b/hw/vfio/pci-quirks.c
>@@ -1565,22 +1565,6 @@ static int vfio_add_nv_gpudirect_cap(VFIOPCIDevice 
>*vdev, Error **errp)
> return 0;
> }
> 
>-static void vfio_pci_nvlink2_get_tgt(Object *obj, Visitor *v,
>- const char *name,
>- void *opaque, Error **errp)
>-{
>-uint64_t tgt = (uintptr_t) opaque;
>-visit_type_uint64(v, name, , errp);
>-}
>-
>-static void vfio_pci_nvlink2_get_link_speed(Object *obj, Visitor *v,
>- const char *name,
>- void *opaque, Error **errp)
>-{
>-uint32_t link_speed = (uint32_t)(uintptr_t) opaque;
>-visit_type_uint32(v, name, _speed, errp);
>-}
>-
> int vfio_pci_nvidia_v100_ram_init(VFIOPCIDevice *vdev, Error **errp)
> {
> int ret;
>@@ -1618,9 +1602,9 @@ int vfio_pci_nvidia_v100_ram_init(VFIOPCIDevice *vdev, 
>Error **errp)
>nv2reg->size, p);
> QLIST_INSERT_HEAD(>bars[0].quirks, quirk, next);
> 
>-object_property_add(OBJECT(vdev), "nvlink2-tgt", "uint64",
>-vfio_pci_nvlink2_get_tgt, NULL, NULL,
>-(void *) (uintptr_t) cap->tgt);
>+object_property_add_uint64_ptr(OBJECT(vdev), "nvlink2-tgt",
>+   (uint64_t *) >tgt,
>+   OBJ_PROP_FLAG_READ);
> trace_vfio_pci_nvidia_gpu_setup_quirk(vdev->vbasedev.name, cap->tgt,
>   nv2reg->size);
> free_exit:
>@@ -1679,15 +1663,15 @@ int vfio_pci_nvlink2_init(VFIOPCIDevice *vdev, Error 
>**errp)
> QLIST_INSERT_HEAD(>bars[0].quirks, quirk, next);
> }
> 
>-object_property_add(OBJECT(vdev), "nvlink2-tgt", "uint64",
>-vfio_pci_nvlink2_get_tgt, NULL, NULL,
>-(void *) (uintptr_t) captgt->tgt);
>+object_property_add_uint64_ptr(OBJECT(vdev), "nvlink2-tgt",
>+   (uint64_t *) >tgt,
>+   OBJ_PROP_FLAG_READ);
> trace_vfio_pci_nvlink2_setup_quirk_ssatgt(vdev->vbasedev.name, 
> captgt->tgt,
>   atsdreg->size);
> 
>-object_property_add(OBJECT(vdev), "nvlink2-link-speed", "uint32",
>-vfio_pci_nvlink2_get_link_speed, NULL, NULL,
>-(void *) (uintptr_t) capspeed->link_speed);
>+object_property_add_uint32_ptr(OBJECT(vdev), "nvlink2-link-speed",
>+   >link_speed,
>+   OBJ_PROP_FLAG_READ);
> trace_vfio_pci_nvlink2_setup_quirk_lnkspd(vdev->vbasedev.name,
>   capspeed->link_speed);
> free_exit:

Ping

@Alistair: When resending, I accidently added a Reviewed-by with your name here 
which I asked to be ignored *after* you re-acked patch 2/2. In case you 
intended to ack this patch as well your voice would be needed again.

Thanks,
Bernhard



Re: [PATCH RESEND 1/2] hw/vfio/pci-quirks: Resolve redundant property getters

2022-03-02 Thread Bernhard Beschow
Am 1. März 2022 22:52:19 UTC schrieb Bernhard Beschow :
>The QOM API already provides getters for uint64 and uint32 values, so reuse
>them.
>
>Signed-off-by: Bernhard Beschow 
>Reviewed-by: Alistair Francis 

Meh, I accidently swapped Alistair's Reviewed-by into this patch while dropping 
it from the other. Please ignore and sorry for that.

Best regards,
Bernhard

>Reviewed-by: Philippe Mathieu-Daudé 
>---
> hw/vfio/pci-quirks.c | 34 +-
> 1 file changed, 9 insertions(+), 25 deletions(-)
>
>diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c
>index 0cf69a8c6d..f0147a050a 100644
>--- a/hw/vfio/pci-quirks.c
>+++ b/hw/vfio/pci-quirks.c
>@@ -1565,22 +1565,6 @@ static int vfio_add_nv_gpudirect_cap(VFIOPCIDevice 
>*vdev, Error **errp)
> return 0;
> }
> 
>-static void vfio_pci_nvlink2_get_tgt(Object *obj, Visitor *v,
>- const char *name,
>- void *opaque, Error **errp)
>-{
>-uint64_t tgt = (uintptr_t) opaque;
>-visit_type_uint64(v, name, , errp);
>-}
>-
>-static void vfio_pci_nvlink2_get_link_speed(Object *obj, Visitor *v,
>- const char *name,
>- void *opaque, Error **errp)
>-{
>-uint32_t link_speed = (uint32_t)(uintptr_t) opaque;
>-visit_type_uint32(v, name, _speed, errp);
>-}
>-
> int vfio_pci_nvidia_v100_ram_init(VFIOPCIDevice *vdev, Error **errp)
> {
> int ret;
>@@ -1618,9 +1602,9 @@ int vfio_pci_nvidia_v100_ram_init(VFIOPCIDevice *vdev, 
>Error **errp)
>nv2reg->size, p);
> QLIST_INSERT_HEAD(>bars[0].quirks, quirk, next);
> 
>-object_property_add(OBJECT(vdev), "nvlink2-tgt", "uint64",
>-vfio_pci_nvlink2_get_tgt, NULL, NULL,
>-(void *) (uintptr_t) cap->tgt);
>+object_property_add_uint64_ptr(OBJECT(vdev), "nvlink2-tgt",
>+   (uint64_t *) >tgt,
>+   OBJ_PROP_FLAG_READ);
> trace_vfio_pci_nvidia_gpu_setup_quirk(vdev->vbasedev.name, cap->tgt,
>   nv2reg->size);
> free_exit:
>@@ -1679,15 +1663,15 @@ int vfio_pci_nvlink2_init(VFIOPCIDevice *vdev, Error 
>**errp)
> QLIST_INSERT_HEAD(>bars[0].quirks, quirk, next);
> }
> 
>-object_property_add(OBJECT(vdev), "nvlink2-tgt", "uint64",
>-vfio_pci_nvlink2_get_tgt, NULL, NULL,
>-(void *) (uintptr_t) captgt->tgt);
>+object_property_add_uint64_ptr(OBJECT(vdev), "nvlink2-tgt",
>+   (uint64_t *) >tgt,
>+   OBJ_PROP_FLAG_READ);
> trace_vfio_pci_nvlink2_setup_quirk_ssatgt(vdev->vbasedev.name, 
> captgt->tgt,
>   atsdreg->size);
> 
>-object_property_add(OBJECT(vdev), "nvlink2-link-speed", "uint32",
>-vfio_pci_nvlink2_get_link_speed, NULL, NULL,
>-(void *) (uintptr_t) capspeed->link_speed);
>+object_property_add_uint32_ptr(OBJECT(vdev), "nvlink2-link-speed",
>+   >link_speed,
>+   OBJ_PROP_FLAG_READ);
> trace_vfio_pci_nvlink2_setup_quirk_lnkspd(vdev->vbasedev.name,
>   capspeed->link_speed);
> free_exit:




[PATCH RESEND 1/2] hw/vfio/pci-quirks: Resolve redundant property getters

2022-03-01 Thread Bernhard Beschow
The QOM API already provides getters for uint64 and uint32 values, so reuse
them.

Signed-off-by: Bernhard Beschow 
Reviewed-by: Alistair Francis 
Reviewed-by: Philippe Mathieu-Daudé 
---
 hw/vfio/pci-quirks.c | 34 +-
 1 file changed, 9 insertions(+), 25 deletions(-)

diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c
index 0cf69a8c6d..f0147a050a 100644
--- a/hw/vfio/pci-quirks.c
+++ b/hw/vfio/pci-quirks.c
@@ -1565,22 +1565,6 @@ static int vfio_add_nv_gpudirect_cap(VFIOPCIDevice 
*vdev, Error **errp)
 return 0;
 }
 
-static void vfio_pci_nvlink2_get_tgt(Object *obj, Visitor *v,
- const char *name,
- void *opaque, Error **errp)
-{
-uint64_t tgt = (uintptr_t) opaque;
-visit_type_uint64(v, name, , errp);
-}
-
-static void vfio_pci_nvlink2_get_link_speed(Object *obj, Visitor *v,
- const char *name,
- void *opaque, Error **errp)
-{
-uint32_t link_speed = (uint32_t)(uintptr_t) opaque;
-visit_type_uint32(v, name, _speed, errp);
-}
-
 int vfio_pci_nvidia_v100_ram_init(VFIOPCIDevice *vdev, Error **errp)
 {
 int ret;
@@ -1618,9 +1602,9 @@ int vfio_pci_nvidia_v100_ram_init(VFIOPCIDevice *vdev, 
Error **errp)
nv2reg->size, p);
 QLIST_INSERT_HEAD(>bars[0].quirks, quirk, next);
 
-object_property_add(OBJECT(vdev), "nvlink2-tgt", "uint64",
-vfio_pci_nvlink2_get_tgt, NULL, NULL,
-(void *) (uintptr_t) cap->tgt);
+object_property_add_uint64_ptr(OBJECT(vdev), "nvlink2-tgt",
+   (uint64_t *) >tgt,
+   OBJ_PROP_FLAG_READ);
 trace_vfio_pci_nvidia_gpu_setup_quirk(vdev->vbasedev.name, cap->tgt,
   nv2reg->size);
 free_exit:
@@ -1679,15 +1663,15 @@ int vfio_pci_nvlink2_init(VFIOPCIDevice *vdev, Error 
**errp)
 QLIST_INSERT_HEAD(>bars[0].quirks, quirk, next);
 }
 
-object_property_add(OBJECT(vdev), "nvlink2-tgt", "uint64",
-vfio_pci_nvlink2_get_tgt, NULL, NULL,
-(void *) (uintptr_t) captgt->tgt);
+object_property_add_uint64_ptr(OBJECT(vdev), "nvlink2-tgt",
+   (uint64_t *) >tgt,
+   OBJ_PROP_FLAG_READ);
 trace_vfio_pci_nvlink2_setup_quirk_ssatgt(vdev->vbasedev.name, captgt->tgt,
   atsdreg->size);
 
-object_property_add(OBJECT(vdev), "nvlink2-link-speed", "uint32",
-vfio_pci_nvlink2_get_link_speed, NULL, NULL,
-(void *) (uintptr_t) capspeed->link_speed);
+object_property_add_uint32_ptr(OBJECT(vdev), "nvlink2-link-speed",
+   >link_speed,
+   OBJ_PROP_FLAG_READ);
 trace_vfio_pci_nvlink2_setup_quirk_lnkspd(vdev->vbasedev.name,
   capspeed->link_speed);
 free_exit:
-- 
2.35.1