DRM: Replace kmalloc/memset combos with kzalloc
Subsystems (2)
PATCH 1/1 DRM: Replace kmalloc/memset combos with kzalloc
Currently most, if not all, memory allocation in drm_bufs.c is followed by initializing the memory with 0.
Replace the use of kmalloc+memset with kzalloc.
--- drivers/gpu/drm/drm_bufs.c | 33 +++++++++++---------------------- 1 files changed, 11 insertions(+), 22 deletions(-)
drivers/gpu/drm/drm_bufs.c +11 -22
@@ -328,14 +328,13 @@ static int drm_addmap_core(struct drm_device * dev, resource_size_t offset,return -EINVAL ; } - list =kmalloc (sizeof (*list),GFP_KERNEL ); + list =kzalloc (sizeof (*list),GFP_KERNEL );if (!list) {if (map->type == _DRM_REGISTERS)iounmap (map->handle);kfree (map);return -EINVAL ; } -memset (list,0 ,sizeof (*list)); list->map = map;mutex_lock (&dev->struct_mutex);
@@ -678,13 +677,12 @@ int drm_addbufs_agp(struct drm_device * dev, struct drm_buf_desc * request)return -EINVAL ; } - entry->buflist =kmalloc (count *sizeof (*entry->buflist),GFP_KERNEL ); + entry->buflist =kzalloc (count *sizeof (*entry->buflist),GFP_KERNEL );if (!entry->buflist) {mutex_unlock (&dev->struct_mutex);atomic_dec (&dev->buf_alloc);return -ENOMEM ; } -memset (entry->buflist,0 , count *sizeof (*entry->buflist)); entry->buf_size = size; entry->page_order = page_order;
@@ -708,7 +706,7 @@ int drm_addbufs_agp(struct drm_device * dev, struct drm_buf_desc * request) buf->file_priv =NULL ; buf->dev_priv_size = dev->driver->dev_priv_size; - buf->dev_private =kmalloc (buf->dev_priv_size,GFP_KERNEL ); + buf->dev_private =kzalloc (buf->dev_priv_size,GFP_KERNEL );if (!buf->dev_private) {/* Set count correctly so we free the proper amount. */ entry->buf_count = count;
@@ -717,7 +715,6 @@ int drm_addbufs_agp(struct drm_device * dev, struct drm_buf_desc * request)atomic_dec (&dev->buf_alloc);return -ENOMEM ; } -memset (buf->dev_private,0 , buf->dev_priv_size);DRM_DEBUG ("buffer %d @ %p\n" , entry->buf_count, buf->address);
@@ -832,22 +829,20 @@ int drm_addbufs_pci(struct drm_device * dev, struct drm_buf_desc * request)return -EINVAL ; } - entry->buflist =kmalloc (count *sizeof (*entry->buflist),GFP_KERNEL ); + entry->buflist =kzalloc (count *sizeof (*entry->buflist),GFP_KERNEL );if (!entry->buflist) {mutex_unlock (&dev->struct_mutex);atomic_dec (&dev->buf_alloc);return -ENOMEM ; } -memset (entry->buflist,0 , count *sizeof (*entry->buflist)); - entry->seglist =kmalloc (count *sizeof (*entry->seglist),GFP_KERNEL ); + entry->seglist =kzalloc (count *sizeof (*entry->seglist),GFP_KERNEL );if (!entry->seglist) {kfree (entry->buflist);mutex_unlock (&dev->struct_mutex);atomic_dec (&dev->buf_alloc);return -ENOMEM ; } -memset (entry->seglist,0 , count *sizeof (*entry->seglist));/* Keep the original pagelist until we know all the allocations * have succeeded
@@ -911,8 +906,8 @@ int drm_addbufs_pci(struct drm_device * dev, struct drm_buf_desc * request) buf->file_priv =NULL ; buf->dev_priv_size = dev->driver->dev_priv_size; - buf->dev_private =kmalloc (buf->dev_priv_size, -GFP_KERNEL ); + buf->dev_private =kzalloc (buf->dev_priv_size, +GFP_KERNEL );if (!buf->dev_private) {/* Set count correctly so we free the proper amount. */ entry->buf_count = count;
@@ -923,7 +918,6 @@ int drm_addbufs_pci(struct drm_device * dev, struct drm_buf_desc * request)atomic_dec (&dev->buf_alloc);return -ENOMEM ; } -memset (buf->dev_private,0 , buf->dev_priv_size);DRM_DEBUG ("buffer %d @ %p\n" , entry->buf_count, buf->address);
@@ -1048,14 +1042,13 @@ static int drm_addbufs_sg(struct drm_device * dev, struct drm_buf_desc * requestreturn -EINVAL ; } - entry->buflist =kmalloc (count *sizeof (*entry->buflist), + entry->buflist =kzalloc (count *sizeof (*entry->buflist),GFP_KERNEL );if (!entry->buflist) {mutex_unlock (&dev->struct_mutex);atomic_dec (&dev->buf_alloc);return -ENOMEM ; } -memset (entry->buflist,0 , count *sizeof (*entry->buflist)); entry->buf_size = size; entry->page_order = page_order;
@@ -1080,7 +1073,7 @@ static int drm_addbufs_sg(struct drm_device * dev, struct drm_buf_desc * request buf->file_priv =NULL ; buf->dev_priv_size = dev->driver->dev_priv_size; - buf->dev_private =kmalloc (buf->dev_priv_size,GFP_KERNEL ); + buf->dev_private =kzalloc (buf->dev_priv_size,GFP_KERNEL );if (!buf->dev_private) {/* Set count correctly so we free the proper amount. */ entry->buf_count = count;
@@ -1090,8 +1083,6 @@ static int drm_addbufs_sg(struct drm_device * dev, struct drm_buf_desc * requestreturn -ENOMEM ; } -memset (buf->dev_private,0 , buf->dev_priv_size); -DRM_DEBUG ("buffer %d @ %p\n" , entry->buf_count, buf->address); offset += alignment;
@@ -1209,14 +1200,13 @@ static int drm_addbufs_fb(struct drm_device * dev, struct drm_buf_desc * requestreturn -EINVAL ; } - entry->buflist =kmalloc (count *sizeof (*entry->buflist), + entry->buflist =kzalloc (count *sizeof (*entry->buflist),GFP_KERNEL );if (!entry->buflist) {mutex_unlock (&dev->struct_mutex);atomic_dec (&dev->buf_alloc);return -ENOMEM ; } -memset (entry->buflist,0 , count *sizeof (*entry->buflist)); entry->buf_size = size; entry->page_order = page_order;
@@ -1240,7 +1230,7 @@ static int drm_addbufs_fb(struct drm_device * dev, struct drm_buf_desc * request buf->file_priv =NULL ; buf->dev_priv_size = dev->driver->dev_priv_size; - buf->dev_private =kmalloc (buf->dev_priv_size,GFP_KERNEL ); + buf->dev_private =kzalloc (buf->dev_priv_size,GFP_KERNEL );if (!buf->dev_private) {/* Set count correctly so we free the proper amount. */ entry->buf_count = count;
@@ -1249,7 +1239,6 @@ static int drm_addbufs_fb(struct drm_device * dev, struct drm_buf_desc * requestatomic_dec (&dev->buf_alloc);return -ENOMEM ; } -memset (buf->dev_private,0 , buf->dev_priv_size);DRM_DEBUG ("buffer %d @ %p\n" , entry->buf_count, buf->address);
Signature · 1 line
1.7.0.4
Quoted 3 lines · Davidlohr Bueso
memory allocation in
drm_bufs.cis followed by initializing the memory with 0.Replace the use of kmalloc+memset with kzalloc.
Perhaps kzalloc's with a multiply could/should also be converted to kcalloc.
Review
Quoted 1 line
(quoted diff) +1
-0+ entry->buflist = kzalloc(count * sizeof(*entry->buflist), GFP_KERNEL);
entry->buflist = kcalloc(count, sizeof(*entry->buflist), GFP_KERNEL);
etc.
Quoted 4 lines
drivers/gpu/drm/drm_bufs.c +4
-0+ entry->buflist =kzalloc (count *sizeof (*entry->buflist),GFP_KERNEL ); + entry->seglist =kzalloc (count *sizeof (*entry->seglist),GFP_KERNEL ); + entry->buflist =kzalloc (count *sizeof (*entry->buflist), + entry->buflist = kzalloc(count * sizeof(*entry->buflist),
Quoted 12 lines · Joe Perches
Quoted 3 lines · Davidlohr Bueso
memory allocation in
drm_bufs.cis followed by initializing the memory with 0.Replace the use of kmalloc+memset with kzalloc.
Perhaps kzalloc's with a multiply could/should also be converted to kcalloc.
Review
Quoted 1 line
(quoted diff) +1
-0+ entry->buflist = kzalloc(count * sizeof(*entry->buflist), GFP_KERNEL);entry->buflist = kcalloc(count, sizeof(*entry->buflist), GFP_KERNEL);
Quoted 7 lines
etc.
drivers/gpu/drm/drm_bufs.c int drm_addbufs_pci(struct drm_device * dev, struct drm_buf_desc * request)
Quoted 4 lines
drivers/gpu/drm/drm_bufs.c +4
-0+ entry->buflist =kzalloc (count *sizeof (*entry->buflist),GFP_KERNEL ); + entry->seglist =kzalloc (count *sizeof (*entry->seglist),GFP_KERNEL ); + entry->buflist =kzalloc (count *sizeof (*entry->buflist), + entry->buflist = kzalloc(count * sizeof(*entry->buflist),
Doable, but don't see much difference. David, what do you think?
Thanks,
Davidlohr
Quoted 15 lines · Davidlohr Bueso
Quoted 14 lines · Joe Perches
Quoted 3 lines · Davidlohr Bueso
memory allocation in
drm_bufs.cis followed by initializing the memory with 0.Replace the use of kmalloc+memset with kzalloc.
Perhaps kzalloc's with a multiply could/should also be converted to kcalloc.
Quoted 1 line
+
entry->buflist=kzalloc(count * sizeof(*entry->buflist), GFP_KERNEL);
entry->buflist=kcalloc(count, sizeof(*entry->buflist), GFP_KERNEL);etc.
Quoted 7 lines
Quoted 5 lines
Quoted 4 lines
+
entry->buflist=kzalloc(count * sizeof(*entry->buflist), GFP_KERNEL);
+entry->seglist=kzalloc(count * sizeof(*entry->seglist), GFP_KERNEL);
+entry->buflist= kzalloc(count *sizeof(*entry->buflist),
+entry->buflist= kzalloc(count *sizeof(*entry->buflist),Doable, but don't see much difference. David, what do you think?
kcalloc does an integer overflow check, plus it's nice to be explicit about allocating a number of elements of a certain size in the API.
Kristian