objtool: Check that module init/exit function is an indirect call target
authorMichal Kubecek <mkubecek@suse.cz>
Wed, 18 Jan 2023 10:52:15 +0000 (11:52 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Sat, 21 Jan 2023 09:50:18 +0000 (10:50 +0100)
commit03d7a1053cf72372be22b43faada5bca12ff183d
tree3903eb97e31a26d63bbb21f6bcf608f6f4ba731f
parent3da73f102309fe29150e5c35acd20dd82063ff67
objtool: Check that module init/exit function is an indirect call target

Some out-of-tree modules still do not use module_init() / module_exit()
macros and simply create functions with magic names init_module() and
cleanup_module() instead. As a result, these functions are not recognized
as indirect call targets by objtool and such module fails to load into an
IBT enabled kernel.

This old way is not even documented any more but it is cleaner to issue
a warning than to let the module fail on load without obvious reason.

Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20230118105215.B9DA960514@lion.mk-sys.cz
tools/objtool/Documentation/objtool.txt
tools/objtool/check.c