Re: [PATCH RESEND 1/2] hw/vfio/pci-quirks: Resolve redundant property getters
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
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
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
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
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