diff mbox

hw/vfio/platform: replace g_malloc0_n by g_malloc0

Message ID 1434006867-19701-1-git-send-email-eric.auger@linaro.org
State New
Headers show

Commit Message

Eric Auger June 11, 2015, 7:14 a.m. UTC
g_malloc0_n() is introduced since glib-2.24 while QEMU currently
requires glib-2.22. This may cause a link error on some distributions.

Signed-off-by: Eric Auger <eric.auger@linaro.org>
---
 hw/vfio/platform.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Gonglei (Arei) June 11, 2015, 7:55 a.m. UTC | #1
On 2015/6/11 15:14, Eric Auger wrote:
> g_malloc0_n() is introduced since glib-2.24 while QEMU currently
> requires glib-2.22. This may cause a link error on some distributions.
> 
> Signed-off-by: Eric Auger <eric.auger@linaro.org>
> ---
>  hw/vfio/platform.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
> index 35266a8..c0acc8b 100644
> --- a/hw/vfio/platform.c
> +++ b/hw/vfio/platform.c
> @@ -346,8 +346,7 @@ static int vfio_populate_device(VFIODevice *vbasedev)
>          return ret;
>      }
>  
> -    vdev->regions = g_malloc0_n(vbasedev->num_regions,
> -                                sizeof(VFIORegion *));
> +    vdev->regions = g_malloc0(vbasedev->num_regions * sizeof(VFIORegion *));
>  

Why not use g_new0() which returned pointer is cast to the given type?

Regards,
-Gonglei
>      for (i = 0; i < vbasedev->num_regions; i++) {
>          struct vfio_region_info reg_info = { .argsz = sizeof(reg_info) };
>
Eric Auger June 11, 2015, 8:46 a.m. UTC | #2
Hi Gonglei,
On 06/11/2015 09:55 AM, Gonglei wrote:
> On 2015/6/11 15:14, Eric Auger wrote:
>> g_malloc0_n() is introduced since glib-2.24 while QEMU currently
>> requires glib-2.22. This may cause a link error on some distributions.
>>
>> Signed-off-by: Eric Auger <eric.auger@linaro.org>
>> ---
>>  hw/vfio/platform.c | 3 +--
>>  1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
>> index 35266a8..c0acc8b 100644
>> --- a/hw/vfio/platform.c
>> +++ b/hw/vfio/platform.c
>> @@ -346,8 +346,7 @@ static int vfio_populate_device(VFIODevice *vbasedev)
>>          return ret;
>>      }
>>  
>> -    vdev->regions = g_malloc0_n(vbasedev->num_regions,
>> -                                sizeof(VFIORegion *));
>> +    vdev->regions = g_malloc0(vbasedev->num_regions * sizeof(VFIORegion *));
>>  
> 
> Why not use g_new0() which returned pointer is cast to the given type?
Looks relevant indeed.

g_malloc0 is used in similar situations in rest of the VFIO code so I
posted a new version and let Alex choose among both.

Thanks

Eric
> 
> Regards,
> -Gonglei
>>      for (i = 0; i < vbasedev->num_regions; i++) {
>>          struct vfio_region_info reg_info = { .argsz = sizeof(reg_info) };
>>
> 
>
Markus Armbruster June 11, 2015, 11:11 a.m. UTC | #3
Eric Auger <eric.auger@linaro.org> writes:

> g_malloc0_n() is introduced since glib-2.24 while QEMU currently
> requires glib-2.22. This may cause a link error on some distributions.
>
> Signed-off-by: Eric Auger <eric.auger@linaro.org>
> ---
>  hw/vfio/platform.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
> index 35266a8..c0acc8b 100644
> --- a/hw/vfio/platform.c
> +++ b/hw/vfio/platform.c
> @@ -346,8 +346,7 @@ static int vfio_populate_device(VFIODevice *vbasedev)
>          return ret;
>      }
>  
> -    vdev->regions = g_malloc0_n(vbasedev->num_regions,
> -                                sizeof(VFIORegion *));
> +    vdev->regions = g_malloc0(vbasedev->num_regions * sizeof(VFIORegion *));
>  
>      for (i = 0; i < vbasedev->num_regions; i++) {
>          struct vfio_region_info reg_info = { .argsz = sizeof(reg_info) };

Please use g_new0(VFIORegion, vbasedev->num_regions) for extra
compile-time checking and integer overflow protection.  See commits
58889fe net: Use g_new() & friends where that makes obvious sense
3c55fe2 scsi: Use g_new() & friends where that makes obvious sense
ab3ad07 x86: Use g_new() & friends where that makes obvious sense
3ba235a block: Use g_new0() for a bit of extra type checking
e1cf558 util: Use g_new() & friends where that makes obvious sense
02c4f26 block: Use g_new() & friends to avoid multiplying sizes
5839e53 block: Use g_new() & friends where that makes obvious sense
diff mbox

Patch

diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c
index 35266a8..c0acc8b 100644
--- a/hw/vfio/platform.c
+++ b/hw/vfio/platform.c
@@ -346,8 +346,7 @@  static int vfio_populate_device(VFIODevice *vbasedev)
         return ret;
     }
 
-    vdev->regions = g_malloc0_n(vbasedev->num_regions,
-                                sizeof(VFIORegion *));
+    vdev->regions = g_malloc0(vbasedev->num_regions * sizeof(VFIORegion *));
 
     for (i = 0; i < vbasedev->num_regions; i++) {
         struct vfio_region_info reg_info = { .argsz = sizeof(reg_info) };