提交 17baa2a2 编写于 作者: Y yan 提交者: Linus Torvalds

proc: use kzalloc instead of kmalloc and memset

Part of the memory will be written twice after this change, but that
should be negligible.

[akpm@linux-foundation.org: fix __proc_create() coding-style issues, remove unneeded zero-initialisations]
Signed-off-by: Nyan <clouds.yan@gmail.com>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 0e069360
...@@ -605,7 +605,8 @@ static struct proc_dir_entry *__proc_create(struct proc_dir_entry **parent, ...@@ -605,7 +605,8 @@ static struct proc_dir_entry *__proc_create(struct proc_dir_entry **parent,
unsigned int len; unsigned int len;
/* make sure name is valid */ /* make sure name is valid */
if (!name || !strlen(name)) goto out; if (!name || !strlen(name))
goto out;
if (xlate_proc_name(name, parent, &fn) != 0) if (xlate_proc_name(name, parent, &fn) != 0)
goto out; goto out;
...@@ -616,20 +617,18 @@ static struct proc_dir_entry *__proc_create(struct proc_dir_entry **parent, ...@@ -616,20 +617,18 @@ static struct proc_dir_entry *__proc_create(struct proc_dir_entry **parent,
len = strlen(fn); len = strlen(fn);
ent = kmalloc(sizeof(struct proc_dir_entry) + len + 1, GFP_KERNEL); ent = kzalloc(sizeof(struct proc_dir_entry) + len + 1, GFP_KERNEL);
if (!ent) goto out; if (!ent)
goto out;
memset(ent, 0, sizeof(struct proc_dir_entry));
memcpy(ent->name, fn, len + 1); memcpy(ent->name, fn, len + 1);
ent->namelen = len; ent->namelen = len;
ent->mode = mode; ent->mode = mode;
ent->nlink = nlink; ent->nlink = nlink;
atomic_set(&ent->count, 1); atomic_set(&ent->count, 1);
ent->pde_users = 0;
spin_lock_init(&ent->pde_unload_lock); spin_lock_init(&ent->pde_unload_lock);
ent->pde_unload_completion = NULL;
INIT_LIST_HEAD(&ent->pde_openers); INIT_LIST_HEAD(&ent->pde_openers);
out: out:
return ent; return ent;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册