mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 03:36:19 +00:00
tracepoints: use modules notifiers
Impact: cleanup Use module notifiers for tracepoint updates rather than 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
5f382671de
commit
32f8574277
2 changed files with 29 additions and 5 deletions
|
@ -2187,11 +2187,6 @@ static noinline struct module *load_module(void __user *umod,
|
||||||
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);
|
||||||
|
|
||||||
#ifdef CONFIG_TRACEPOINTS
|
|
||||||
tracepoint_update_probe_range(mod->tracepoints,
|
|
||||||
mod->tracepoints + mod->num_tracepoints);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* sechdrs[0].sh_size is always zero */
|
/* sechdrs[0].sh_size is always zero */
|
||||||
|
|
|
@ -541,3 +541,32 @@ void tracepoint_iter_reset(struct tracepoint_iter *iter)
|
||||||
iter->tracepoint = NULL;
|
iter->tracepoint = NULL;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(tracepoint_iter_reset);
|
EXPORT_SYMBOL_GPL(tracepoint_iter_reset);
|
||||||
|
|
||||||
|
int tracepoint_module_notify(struct notifier_block *self,
|
||||||
|
unsigned long val, void *data)
|
||||||
|
{
|
||||||
|
struct module *mod = data;
|
||||||
|
|
||||||
|
switch (val) {
|
||||||
|
case MODULE_STATE_COMING:
|
||||||
|
tracepoint_update_probe_range(mod->tracepoints,
|
||||||
|
mod->tracepoints + mod->num_tracepoints);
|
||||||
|
break;
|
||||||
|
case MODULE_STATE_GOING:
|
||||||
|
tracepoint_update_probe_range(mod->tracepoints,
|
||||||
|
mod->tracepoints + mod->num_tracepoints);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct notifier_block tracepoint_module_nb = {
|
||||||
|
.notifier_call = tracepoint_module_notify,
|
||||||
|
.priority = 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
static int init_tracepoints(void)
|
||||||
|
{
|
||||||
|
return register_module_notifier(&tracepoint_module_nb);
|
||||||
|
}
|
||||||
|
__initcall(init_tracepoints);
|
||||||
|
|
Loading…
Reference in a new issue