markers: use module notifier
Impact: cleanup Use module notifiers instead of adding a hook in module.c. Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
021aeb057f
commit
a419246ac7
|
@ -846,3 +846,32 @@ void *marker_get_private_data(const char *name, marker_probe_func *probe,
|
||||||
return ERR_PTR(-ENOENT);
|
return ERR_PTR(-ENOENT);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(marker_get_private_data);
|
EXPORT_SYMBOL_GPL(marker_get_private_data);
|
||||||
|
|
||||||
|
int marker_module_notify(struct notifier_block *self,
|
||||||
|
unsigned long val, void *data)
|
||||||
|
{
|
||||||
|
struct module *mod = data;
|
||||||
|
|
||||||
|
switch (val) {
|
||||||
|
case MODULE_STATE_COMING:
|
||||||
|
marker_update_probe_range(mod->markers,
|
||||||
|
mod->markers + mod->num_markers);
|
||||||
|
break;
|
||||||
|
case MODULE_STATE_GOING:
|
||||||
|
marker_update_probe_range(mod->markers,
|
||||||
|
mod->markers + mod->num_markers);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct notifier_block marker_module_nb = {
|
||||||
|
.notifier_call = marker_module_notify,
|
||||||
|
.priority = 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
static int init_markers(void)
|
||||||
|
{
|
||||||
|
return register_module_notifier(&marker_module_nb);
|
||||||
|
}
|
||||||
|
__initcall(init_markers);
|
||||||
|
|
|
@ -2184,10 +2184,6 @@ static noinline struct module *load_module(void __user *umod,
|
||||||
struct mod_debug *debug;
|
struct mod_debug *debug;
|
||||||
unsigned int num_debug;
|
unsigned int num_debug;
|
||||||
|
|
||||||
#ifdef CONFIG_MARKERS
|
|
||||||
marker_update_probe_range(mod->markers,
|
|
||||||
mod->markers + mod->num_markers);
|
|
||||||
#endif
|
|
||||||
debug = section_objs(hdr, sechdrs, secstrings, "__verbose",
|
debug = section_objs(hdr, sechdrs, secstrings, "__verbose",
|
||||||
sizeof(*debug), &num_debug);
|
sizeof(*debug), &num_debug);
|
||||||
dynamic_printk_setup(debug, num_debug);
|
dynamic_printk_setup(debug, num_debug);
|
||||||
|
|
Loading…
Reference in New Issue