* [PATCH] DRM: Replace kmalloc/memset combos with kzalloc
@ 2010-08-11 13:18 Davidlohr Bueso
2010-08-11 14:35 ` Joe Perches
0 siblings, 1 reply; 4+ messages in thread
From: Davidlohr Bueso @ 2010-08-11 13:18 UTC (permalink / raw)
To: Dave Airlie, Dave Airlie, eric; +Cc: dri-devel, LKML
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.
Signed-off-by: Davidlohr Bueso <dave@gnu.org>
---
drivers/gpu/drm/drm_bufs.c | 33 +++++++++++----------------------
1 files changed, 11 insertions(+), 22 deletions(-)
diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c
index a5c9ce9..3e257a5 100644
--- a/drivers/gpu/drm/drm_bufs.c
+++ b/drivers/gpu/drm/drm_bufs.c
@@ -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 * request
return -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 * request
return -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 * request
return -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 * 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);
--
1.7.0.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] DRM: Replace kmalloc/memset combos with kzalloc
2010-08-11 13:18 [PATCH] DRM: Replace kmalloc/memset combos with kzalloc Davidlohr Bueso
@ 2010-08-11 14:35 ` Joe Perches
2010-08-11 19:58 ` Davidlohr Bueso
0 siblings, 1 reply; 4+ messages in thread
From: Joe Perches @ 2010-08-11 14:35 UTC (permalink / raw)
To: dave; +Cc: Dave Airlie, Dave Airlie, eric, dri-devel, LKML
On Wed, 2010-08-11 at 09:18 -0400, Davidlohr Bueso wrote:
> memory allocation in drm_bufs.c is 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.
> + entry->buflist = kzalloc(count * sizeof(*entry->buflist), GFP_KERNEL);
entry->buflist = kcalloc(count, sizeof(*entry->buflist), GFP_KERNEL);
etc.
> + 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),
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] DRM: Replace kmalloc/memset combos with kzalloc
2010-08-11 14:35 ` Joe Perches
@ 2010-08-11 19:58 ` Davidlohr Bueso
2010-08-12 3:12 ` Kristian Høgsberg
0 siblings, 1 reply; 4+ messages in thread
From: Davidlohr Bueso @ 2010-08-11 19:58 UTC (permalink / raw)
To: Joe Perches; +Cc: Dave Airlie, Dave Airlie, eric, dri-devel, LKML
On Wed, 2010-08-11 at 07:35 -0700, Joe Perches wrote:
> On Wed, 2010-08-11 at 09:18 -0400, Davidlohr Bueso wrote:
> > memory allocation in drm_bufs.c is 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.
>
> > + entry->buflist = kzalloc(count * sizeof(*entry->buflist), GFP_KERNEL);
>
> entry->buflist = kcalloc(count, sizeof(*entry->buflist), GFP_KERNEL);
>
> etc.
>
> > + 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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] DRM: Replace kmalloc/memset combos with kzalloc
2010-08-11 19:58 ` Davidlohr Bueso
@ 2010-08-12 3:12 ` Kristian Høgsberg
0 siblings, 0 replies; 4+ messages in thread
From: Kristian Høgsberg @ 2010-08-12 3:12 UTC (permalink / raw)
To: dave; +Cc: Joe Perches, Dave Airlie, LKML, dri-devel
On Wed, Aug 11, 2010 at 3:58 PM, Davidlohr Bueso <dave@gnu.org> wrote:
> On Wed, 2010-08-11 at 07:35 -0700, Joe Perches wrote:
>> On Wed, 2010-08-11 at 09:18 -0400, Davidlohr Bueso wrote:
>> > memory allocation in drm_bufs.c is 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.
>>
>> > + entry->buflist = kzalloc(count * sizeof(*entry->buflist), GFP_KERNEL);
>>
>> entry->buflist = kcalloc(count, sizeof(*entry->buflist), GFP_KERNEL);
>>
>> etc.
>>
>> > + 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
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-08-12 3:12 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-11 13:18 [PATCH] DRM: Replace kmalloc/memset combos with kzalloc Davidlohr Bueso
2010-08-11 14:35 ` Joe Perches
2010-08-11 19:58 ` Davidlohr Bueso
2010-08-12 3:12 ` Kristian Høgsberg
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox