/proc/kallsyms shows undefined symbols for livepatch modules

From: Josh Poimboeuf
Date: Sat Jun 02 2018 - 13:32:44 EST


Hi Jessica,

I found a bug:

[root@f25 ~]# modprobe livepatch-sample
[root@f25 ~]# grep ' u ' /proc/kallsyms
ffffffff81161080 u klp_enable_patch [livepatch_sample]
ffffffff81a01800 u __fentry__ [livepatch_sample]
ffffffff81161250 u klp_unregister_patch [livepatch_sample]
ffffffff81161870 u klp_register_patch [livepatch_sample]
ffffffff8131f0b0 u seq_printf [livepatch_sample]

Notice that livepatch modules' undefined symbols are showing up in
/proc/kallsyms. This can confuse klp_find_object_symbol() which can
cause subtle bugs in livepatch.

I stared at the module kallsyms code for a bit, but I don't see the bug.
Maybe it has something to do with how we save the symbol table in
copy_module_elf(). Any ideas?

--
Josh