On Thu, 2015-10-29 at 16:46 +0100, Markus Armbruster wrote: > g_new(T, n) is neater than g_malloc(sizeof(T) * n). It's also safer, > for two reasons. One, it catches multiplication overflowing size_t. > Two, it returns T * rather than void *, which lets the compiler catch > more type errors. > > This commit only touches allocations with size arguments of the form > sizeof(T). Same Coccinelle semantic patch as in commit b45c03f. > > Signed-off-by: Markus Armbruster <arm...@redhat.com> > ---
Looks good to me. I'll queue this with another patch that needs to go in, so no need for trivial to collect it. Thanks, Alex > hw/vfio/pci-quirks.c | 16 ++++++++-------- > hw/vfio/pci.c | 4 ++-- > hw/vfio/platform.c | 2 +- > 3 files changed, 11 insertions(+), 11 deletions(-) > > diff --git a/hw/vfio/pci-quirks.c b/hw/vfio/pci-quirks.c > index c675d1b..30c68a1 100644 > --- a/hw/vfio/pci-quirks.c > +++ b/hw/vfio/pci-quirks.c > @@ -284,7 +284,7 @@ static void vfio_vga_probe_ati_3c3_quirk(VFIOPCIDevice > *vdev) > } > > quirk = g_malloc0(sizeof(*quirk)); > - quirk->mem = g_malloc0(sizeof(MemoryRegion)); > + quirk->mem = g_new0(MemoryRegion, 1); > quirk->nr_mem = 1; > > memory_region_init_io(quirk->mem, OBJECT(vdev), &vfio_ati_3c3_quirk, > vdev, > @@ -319,7 +319,7 @@ static void vfio_probe_ati_bar4_quirk(VFIOPCIDevice > *vdev, int nr) > } > > quirk = g_malloc0(sizeof(*quirk)); > - quirk->mem = g_malloc0(sizeof(MemoryRegion) * 2); > + quirk->mem = g_new0(MemoryRegion, 2); > quirk->nr_mem = 2; > window = quirk->data = g_malloc0(sizeof(*window) + > sizeof(VFIOConfigWindowMatch)); > @@ -368,7 +368,7 @@ static void vfio_probe_ati_bar2_quirk(VFIOPCIDevice > *vdev, int nr) > > quirk = g_malloc0(sizeof(*quirk)); > mirror = quirk->data = g_malloc0(sizeof(*mirror)); > - mirror->mem = quirk->mem = g_malloc0(sizeof(MemoryRegion)); > + mirror->mem = quirk->mem = g_new0(MemoryRegion, 1); > quirk->nr_mem = 1; > mirror->vdev = vdev; > mirror->offset = 0x4000; > @@ -544,7 +544,7 @@ static void vfio_vga_probe_nvidia_3d0_quirk(VFIOPCIDevice > *vdev) > > quirk = g_malloc0(sizeof(*quirk)); > quirk->data = data = g_malloc0(sizeof(*data)); > - quirk->mem = g_malloc0(sizeof(MemoryRegion) * 2); > + quirk->mem = g_new0(MemoryRegion, 2); > quirk->nr_mem = 2; > data->vdev = vdev; > > @@ -661,7 +661,7 @@ static void vfio_probe_nvidia_bar5_quirk(VFIOPCIDevice > *vdev, int nr) > } > > quirk = g_malloc0(sizeof(*quirk)); > - quirk->mem = g_malloc0(sizeof(MemoryRegion) * 4); > + quirk->mem = g_new0(MemoryRegion, 4); > quirk->nr_mem = 4; > bar5 = quirk->data = g_malloc0(sizeof(*bar5) + > (sizeof(VFIOConfigWindowMatch) * 2)); > @@ -756,7 +756,7 @@ static void vfio_probe_nvidia_bar0_quirk(VFIOPCIDevice > *vdev, int nr) > > quirk = g_malloc0(sizeof(*quirk)); > mirror = quirk->data = g_malloc0(sizeof(*mirror)); > - mirror->mem = quirk->mem = g_malloc0(sizeof(MemoryRegion)); > + mirror->mem = quirk->mem = g_new0(MemoryRegion, 1); > quirk->nr_mem = 1; > mirror->vdev = vdev; > mirror->offset = 0x88000; > @@ -775,7 +775,7 @@ static void vfio_probe_nvidia_bar0_quirk(VFIOPCIDevice > *vdev, int nr) > if (vdev->has_vga) { > quirk = g_malloc0(sizeof(*quirk)); > mirror = quirk->data = g_malloc0(sizeof(*mirror)); > - mirror->mem = quirk->mem = g_malloc0(sizeof(MemoryRegion)); > + mirror->mem = quirk->mem = g_new0(MemoryRegion, 1); > quirk->nr_mem = 1; > mirror->vdev = vdev; > mirror->offset = 0x1800; > @@ -938,7 +938,7 @@ static void vfio_probe_rtl8168_bar2_quirk(VFIOPCIDevice > *vdev, int nr) > } > > quirk = g_malloc0(sizeof(*quirk)); > - quirk->mem = g_malloc0(sizeof(MemoryRegion) * 2); > + quirk->mem = g_new0(MemoryRegion, 2); > quirk->nr_mem = 2; > quirk->data = rtl = g_malloc0(sizeof(*rtl)); > rtl->vdev = vdev; > diff --git a/hw/vfio/pci.c b/hw/vfio/pci.c > index 8fadbcf..e34c0c1 100644 > --- a/hw/vfio/pci.c > +++ b/hw/vfio/pci.c > @@ -586,7 +586,7 @@ static void vfio_msix_enable(VFIOPCIDevice *vdev) > { > vfio_disable_interrupts(vdev); > > - vdev->msi_vectors = g_malloc0(vdev->msix->entries * > sizeof(VFIOMSIVector)); > + vdev->msi_vectors = g_new0(VFIOMSIVector, vdev->msix->entries); > > vdev->interrupt = VFIO_INT_MSIX; > > @@ -622,7 +622,7 @@ static void vfio_msi_enable(VFIOPCIDevice *vdev) > > vdev->nr_vectors = msi_nr_vectors_allocated(&vdev->pdev); > retry: > - vdev->msi_vectors = g_malloc0(vdev->nr_vectors * sizeof(VFIOMSIVector)); > + vdev->msi_vectors = g_new0(VFIOMSIVector, vdev->nr_vectors); > > for (i = 0; i < vdev->nr_vectors; i++) { > VFIOMSIVector *vector = &vdev->msi_vectors[i]; > diff --git a/hw/vfio/platform.c b/hw/vfio/platform.c > index 5c1156c..289b498 100644 > --- a/hw/vfio/platform.c > +++ b/hw/vfio/platform.c > @@ -478,7 +478,7 @@ static int vfio_populate_device(VFIODevice *vbasedev) > struct vfio_region_info reg_info = { .argsz = sizeof(reg_info) }; > VFIORegion *ptr; > > - vdev->regions[i] = g_malloc0(sizeof(VFIORegion)); > + vdev->regions[i] = g_new0(VFIORegion, 1); > ptr = vdev->regions[i]; > reg_info.index = i; > ret = ioctl(vbasedev->fd, VFIO_DEVICE_GET_REGION_INFO, ®_info);