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:
parent
0340a6b7fb
commit
59cc8e0a90
|
@ -3792,9 +3792,13 @@ static int prepare_coming_module(struct module *mod)
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
blocking_notifier_call_chain(&module_notify_list,
|
err = blocking_notifier_call_chain_robust(&module_notify_list,
|
||||||
MODULE_STATE_COMING, mod);
|
MODULE_STATE_COMING, MODULE_STATE_GOING, mod);
|
||||||
return 0;
|
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,
|
static int unknown_module_param_cb(char *param, char *val, const char *modname,
|
||||||
|
|
Loading…
Reference in a new issue