• Jessica Yu's avatar
    ftrace/module: remove ftrace module notifier · 7dcd182b
    Jessica Yu authored
    Remove the ftrace module notifier in favor of directly calling
    ftrace_module_enable() and ftrace_release_mod() in the module loader.
    Hard-coding the function calls directly in the module loader removes
    dependence on the module notifier call chain and provides better
    visibility and control over what gets called when, which is important
    to kernel utilities such as livepatch.
    
    This fixes a notifier ordering issue in which the ftrace module notifier
    (and hence ftrace_module_enable()) for coming modules was being called
    after klp_module_notify(), which caused livepatch modules to initialize
    incorrectly. This patch removes dependence on the module notifier call
    chain in favor of hard coding the corresponding function calls in the
    module loader. This ensures that ftrace and livepatch code get called in
    the correct order on patch module load and unload.
    
    Fixes: 5156dca3 ("ftrace: Fix the race between ftrace and insmod")
    Signed-off-by: default avatarJessica Yu <jeyu@redhat.com>
    Reviewed-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    Reviewed-by: default avatarPetr Mladek <pmladek@suse.cz>
    Acked-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    Reviewed-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
    Reviewed-by: default avatarMiroslav Benes <mbenes@suse.cz>
    Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
    7dcd182b
ftrace.c 139 KB