module: Properly propagate MODULE_STATE_COMING failure
Now that notifiers got unbroken; use the proper interface to handle notifier errors and propagate them. There were already MODULE_STATE_COMING notifiers that failed; notably: - jump_label_module_notifier() - tracepoint_module_notify() - bpf_event_notify() By propagating this error, we fix those users. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Miroslav Benes <mbenes@suse.cz> Acked-by: Jessica Yu <jeyu@kernel.org> Acked-by: Josh Poimboeuf <jpoimboe@redhat.com> Link: https://lore.kernel.org/r/20200818135804.444372853@infradead.org
This commit is contained in:
Родитель
0340a6b7fb
Коммит
59cc8e0a90
|
@ -3792,9 +3792,13 @@ static int prepare_coming_module(struct module *mod)
|
|||
if (err)
|
||||
return err;
|
||||
|
||||
blocking_notifier_call_chain(&module_notify_list,
|
||||
MODULE_STATE_COMING, mod);
|
||||
return 0;
|
||||
err = blocking_notifier_call_chain_robust(&module_notify_list,
|
||||
MODULE_STATE_COMING, MODULE_STATE_GOING, mod);
|
||||
err = notifier_to_errno(err);
|
||||
if (err)
|
||||
klp_module_going(mod);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
static int unknown_module_param_cb(char *param, char *val, const char *modname,
|
||||
|
|
Загрузка…
Ссылка в новой задаче