Re: [PATCH -next] module: use kmemdup rather than duplicating its implementation
From: Rusty Russell
Date: Mon Jul 18 2016 - 19:46:49 EST
weiyj_lk@xxxxxxx writes:
> From: Wei Yongjun <yongjun_wei@xxxxxxxxxxxxxxxxx>
>
> Use kmemdup rather than duplicating its implementation.
>
> Generated by: scripts/coccinelle/api/memdup.cocci
>
> Signed-off-by: Wei Yongjun <yongjun_wei@xxxxxxxxxxxxxxxxx>
Hi Wei!
This code has been removed by other changes in modules-next,
so your very nice cleanup is no longer necessary.
Thanks!
Rusty.
> ---
> kernel/module.c | 7 +++----
> 1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/kernel/module.c b/kernel/module.c
> index beaebea..04de59f 100644
> --- a/kernel/module.c
> +++ b/kernel/module.c
> @@ -1994,21 +1994,20 @@ static int copy_module_elf(struct module *mod, struct load_info *info)
>
> /* Elf section header table */
> size = sizeof(*info->sechdrs) * info->hdr->e_shnum;
> - mod->klp_info->sechdrs = kmalloc(size, GFP_KERNEL);
> + mod->klp_info->sechdrs = kmemdup(info->sechdrs, size, GFP_KERNEL);
> if (mod->klp_info->sechdrs == NULL) {
> ret = -ENOMEM;
> goto free_info;
> }
> - memcpy(mod->klp_info->sechdrs, info->sechdrs, size);
>
> /* Elf section name string table */
> size = info->sechdrs[info->hdr->e_shstrndx].sh_size;
> - mod->klp_info->secstrings = kmalloc(size, GFP_KERNEL);
> + mod->klp_info->secstrings = kmemdup(info->secstrings, size,
> + GFP_KERNEL);
> if (mod->klp_info->secstrings == NULL) {
> ret = -ENOMEM;
> goto free_sechdrs;
> }
> - memcpy(mod->klp_info->secstrings, info->secstrings, size);
>
> /* Elf symbol section index */
> symndx = info->index.sym;