This patch performs a check on the return value of percpu_modcopy for the module load. Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx> Index: linux-2.6.16-test/kernel/module.c =================================================================== --- linux-2.6.16-test.orig/kernel/module.c 2006-05-17 04:32:28.000000000 -0400 +++ linux-2.6.16-test/kernel/module.c 2006-05-17 04:57:53.000000000 -0400 @@ -1819,8 +1819,11 @@ static struct module *load_module(void _ sort_extable(extable, extable + mod->num_exentries); /* Finally, copy percpu area over. */ - percpu_modcopy(mod->percpu, (void *)sechdrs[pcpuindex].sh_addr, - sechdrs[pcpuindex].sh_size); + err = percpu_modcopy(mod->percpu, (void *)sechdrs[pcpuindex].sh_addr, + sechdrs[pcpuindex].sh_size); + + if (err < 0) + goto cleanup; add_kallsyms(mod, sechdrs, symindex, strindex, secstrings);