aboutsummaryrefslogtreecommitdiffstats
path: root/security/device_cgroup.c
diff options
context:
space:
mode:
authorLi Zefan <lizf@cn.fujitsu.com>2008-10-18 23:28:06 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-10-20 11:52:38 -0400
commit2cdc7241a290bb2b9ef4c2e2969a4a3ed92abb63 (patch)
treec544eeca8ed7777580ebd91f97778792d5ff6d07 /security/device_cgroup.c
parent886465f407e57d6c3c81013c919ea670ce1ae0d0 (diff)
devcgroup: use kmemdup()
This saves 40 bytes on my x86_32 box. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Acked-by: Serge Hallyn <serue@us.ibm.com> Cc: Paul Menage <menage@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'security/device_cgroup.c')
-rw-r--r--security/device_cgroup.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/security/device_cgroup.c b/security/device_cgroup.c
index 46f23971f7e4..9c625f65ee56 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)
84 struct dev_whitelist_item *wh, *tmp, *new; 84 struct dev_whitelist_item *wh, *tmp, *new;
85 85
86 list_for_each_entry(wh, orig, list) { 86 list_for_each_entry(wh, orig, list) {
87 new = kmalloc(sizeof(*wh), GFP_KERNEL); 87 new = kmemdup(wh, sizeof(*wh), GFP_KERNEL);
88 if (!new) 88 if (!new)
89 goto free_and_exit; 89 goto free_and_exit;
90 new->major = wh->major;
91 new->minor = wh->minor;
92 new->type = wh->type;
93 new->access = wh->access;
94 list_add_tail(&new->list, dest); 90 list_add_tail(&new->list, dest);
95 } 91 }
96 92
@@ -114,11 +110,10 @@ static int dev_whitelist_add(struct dev_cgroup *dev_cgroup,
114{ 110{
115 struct dev_whitelist_item *whcopy, *walk; 111 struct dev_whitelist_item *whcopy, *walk;
116 112
117 whcopy = kmalloc(sizeof(*whcopy), GFP_KERNEL); 113 whcopy = kmemdup(wh, sizeof(*wh), GFP_KERNEL);
118 if (!whcopy) 114 if (!whcopy)
119 return -ENOMEM; 115 return -ENOMEM;
120 116
121 memcpy(whcopy, wh, sizeof(*whcopy));
122 spin_lock(&dev_cgroup->lock); 117 spin_lock(&dev_cgroup->lock);
123 list_for_each_entry(walk, &dev_cgroup->whitelist, list) { 118 list_for_each_entry(walk, &dev_cgroup->whitelist, list) {
124 if (walk->type != wh->type) 119 if (walk->type != wh->type)