2008-08-25 02:23:28

by Li Zefan

[permalink] [raw]
Subject: [PATCH] devcgroup: use kmemdup()

This saves 40 bytes on my x86_32 box.

Signed-off-by: Li Zefan <[email protected]>
---
security/device_cgroup.c | 9 ++-------
1 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/security/device_cgroup.c b/security/device_cgroup.c
index 46f2397..9c625f6 100644
--- a/security/device_cgroup.c
+++ b/security/device_cgroup.c
@@ -84,13 +84,9 @@ static int dev_whitelist_copy(struct list_head *dest, struct list_head *orig)
struct dev_whitelist_item *wh, *tmp, *new;

list_for_each_entry(wh, orig, list) {
- new = kmalloc(sizeof(*wh), GFP_KERNEL);
+ new = kmemdup(wh, sizeof(*wh), GFP_KERNEL);
if (!new)
goto free_and_exit;
- new->major = wh->major;
- new->minor = wh->minor;
- new->type = wh->type;
- new->access = wh->access;
list_add_tail(&new->list, dest);
}

@@ -114,11 +110,10 @@ static int dev_whitelist_add(struct dev_cgroup *dev_cgroup,
{
struct dev_whitelist_item *whcopy, *walk;

- whcopy = kmalloc(sizeof(*whcopy), GFP_KERNEL);
+ whcopy = kmemdup(wh, sizeof(*wh), GFP_KERNEL);
if (!whcopy)
return -ENOMEM;

- memcpy(whcopy, wh, sizeof(*whcopy));
spin_lock(&dev_cgroup->lock);
list_for_each_entry(walk, &dev_cgroup->whitelist, list) {
if (walk->type != wh->type)
--
1.5.4.rc3


2008-08-25 16:43:35

by Serge E. Hallyn

[permalink] [raw]
Subject: Re: [PATCH] devcgroup: use kmemdup()

Quoting Li Zefan ([email protected]):
> This saves 40 bytes on my x86_32 box.
>
> Signed-off-by: Li Zefan <[email protected]>

Acked-by: Serge Hallyn <[email protected]>

> ---
> security/device_cgroup.c | 9 ++-------
> 1 files changed, 2 insertions(+), 7 deletions(-)
>
> diff --git a/security/device_cgroup.c b/security/device_cgroup.c
> index 46f2397..9c625f6 100644
> --- a/security/device_cgroup.c
> +++ b/security/device_cgroup.c
> @@ -84,13 +84,9 @@ static int dev_whitelist_copy(struct list_head *dest, struct list_head *orig)
> struct dev_whitelist_item *wh, *tmp, *new;
>
> list_for_each_entry(wh, orig, list) {
> - new = kmalloc(sizeof(*wh), GFP_KERNEL);
> + new = kmemdup(wh, sizeof(*wh), GFP_KERNEL);
> if (!new)
> goto free_and_exit;
> - new->major = wh->major;
> - new->minor = wh->minor;
> - new->type = wh->type;
> - new->access = wh->access;
> list_add_tail(&new->list, dest);
> }
>
> @@ -114,11 +110,10 @@ static int dev_whitelist_add(struct dev_cgroup *dev_cgroup,
> {
> struct dev_whitelist_item *whcopy, *walk;
>
> - whcopy = kmalloc(sizeof(*whcopy), GFP_KERNEL);
> + whcopy = kmemdup(wh, sizeof(*wh), GFP_KERNEL);
> if (!whcopy)
> return -ENOMEM;
>
> - memcpy(whcopy, wh, sizeof(*whcopy));
> spin_lock(&dev_cgroup->lock);
> list_for_each_entry(walk, &dev_cgroup->whitelist, list) {
> if (walk->type != wh->type)
> --
> 1.5.4.rc3