Lines Matching refs:mod_map
6348 struct ftrace_mod_map *mod_map = container_of(rcu, struct ftrace_mod_map, rcu); in ftrace_free_mod_map() local
6353 list_for_each_entry_safe(mod_func, n, &mod_map->funcs, list) { in ftrace_free_mod_map()
6359 kfree(mod_map); in ftrace_free_mod_map()
6364 struct ftrace_mod_map *mod_map; in ftrace_release_mod() local
6377 list_for_each_entry_safe(mod_map, n, &ftrace_mod_maps, list) { in ftrace_release_mod()
6378 if (mod_map->mod == mod) { in ftrace_release_mod()
6379 list_del_rcu(&mod_map->list); in ftrace_release_mod()
6380 call_rcu(&mod_map->rcu, ftrace_free_mod_map); in ftrace_release_mod()
6511 static void save_ftrace_mod_rec(struct ftrace_mod_map *mod_map, in save_ftrace_mod_rec() argument
6538 mod_map->num_funcs++; in save_ftrace_mod_rec()
6540 list_add_rcu(&mod_func->list, &mod_map->funcs); in save_ftrace_mod_rec()
6547 struct ftrace_mod_map *mod_map; in allocate_ftrace_mod_map() local
6549 mod_map = kmalloc(sizeof(*mod_map), GFP_KERNEL); in allocate_ftrace_mod_map()
6550 if (!mod_map) in allocate_ftrace_mod_map()
6553 mod_map->mod = mod; in allocate_ftrace_mod_map()
6554 mod_map->start_addr = start; in allocate_ftrace_mod_map()
6555 mod_map->end_addr = end; in allocate_ftrace_mod_map()
6556 mod_map->num_funcs = 0; in allocate_ftrace_mod_map()
6558 INIT_LIST_HEAD_RCU(&mod_map->funcs); in allocate_ftrace_mod_map()
6560 list_add_rcu(&mod_map->list, &ftrace_mod_maps); in allocate_ftrace_mod_map()
6562 return mod_map; in allocate_ftrace_mod_map()
6566 ftrace_func_address_lookup(struct ftrace_mod_map *mod_map, in ftrace_func_address_lookup() argument
6573 list_for_each_entry_rcu(mod_func, &mod_map->funcs, list) { in ftrace_func_address_lookup()
6599 struct ftrace_mod_map *mod_map; in ftrace_mod_address_lookup() local
6604 list_for_each_entry_rcu(mod_map, &ftrace_mod_maps, list) { in ftrace_mod_address_lookup()
6605 ret = ftrace_func_address_lookup(mod_map, addr, size, off, sym); in ftrace_mod_address_lookup()
6608 *modname = mod_map->mod->name; in ftrace_mod_address_lookup()
6621 struct ftrace_mod_map *mod_map; in ftrace_mod_get_kallsym() local
6626 list_for_each_entry_rcu(mod_map, &ftrace_mod_maps, list) { in ftrace_mod_get_kallsym()
6628 if (symnum >= mod_map->num_funcs) { in ftrace_mod_get_kallsym()
6629 symnum -= mod_map->num_funcs; in ftrace_mod_get_kallsym()
6633 list_for_each_entry_rcu(mod_func, &mod_map->funcs, list) { in ftrace_mod_get_kallsym()
6642 strlcpy(module_name, mod_map->mod->name, MODULE_NAME_LEN); in ftrace_mod_get_kallsym()
6657 static void save_ftrace_mod_rec(struct ftrace_mod_map *mod_map, in save_ftrace_mod_rec() argument
6740 struct ftrace_mod_map *mod_map = NULL; in ftrace_free_mem() local
6758 mod_map = allocate_ftrace_mod_map(mod, start, end); in ftrace_free_mem()
6774 if (mod_map) in ftrace_free_mem()
6775 save_ftrace_mod_rec(mod_map, rec); in ftrace_free_mem()