Lines Matching refs:mod_map
6395 struct ftrace_mod_map *mod_map = container_of(rcu, struct ftrace_mod_map, rcu); in ftrace_free_mod_map() local
6400 list_for_each_entry_safe(mod_func, n, &mod_map->funcs, list) { in ftrace_free_mod_map()
6406 kfree(mod_map); in ftrace_free_mod_map()
6411 struct ftrace_mod_map *mod_map; in ftrace_release_mod() local
6424 list_for_each_entry_safe(mod_map, n, &ftrace_mod_maps, list) { in ftrace_release_mod()
6425 if (mod_map->mod == mod) { in ftrace_release_mod()
6426 list_del_rcu(&mod_map->list); in ftrace_release_mod()
6427 call_rcu(&mod_map->rcu, ftrace_free_mod_map); in ftrace_release_mod()
6559 static void save_ftrace_mod_rec(struct ftrace_mod_map *mod_map, in save_ftrace_mod_rec() argument
6586 mod_map->num_funcs++; in save_ftrace_mod_rec()
6588 list_add_rcu(&mod_func->list, &mod_map->funcs); in save_ftrace_mod_rec()
6595 struct ftrace_mod_map *mod_map; in allocate_ftrace_mod_map() local
6597 mod_map = kmalloc(sizeof(*mod_map), GFP_KERNEL); in allocate_ftrace_mod_map()
6598 if (!mod_map) in allocate_ftrace_mod_map()
6601 mod_map->mod = mod; in allocate_ftrace_mod_map()
6602 mod_map->start_addr = start; in allocate_ftrace_mod_map()
6603 mod_map->end_addr = end; in allocate_ftrace_mod_map()
6604 mod_map->num_funcs = 0; in allocate_ftrace_mod_map()
6606 INIT_LIST_HEAD_RCU(&mod_map->funcs); in allocate_ftrace_mod_map()
6608 list_add_rcu(&mod_map->list, &ftrace_mod_maps); in allocate_ftrace_mod_map()
6610 return mod_map; in allocate_ftrace_mod_map()
6614 ftrace_func_address_lookup(struct ftrace_mod_map *mod_map, in ftrace_func_address_lookup() argument
6621 list_for_each_entry_rcu(mod_func, &mod_map->funcs, list) { in ftrace_func_address_lookup()
6647 struct ftrace_mod_map *mod_map; in ftrace_mod_address_lookup() local
6652 list_for_each_entry_rcu(mod_map, &ftrace_mod_maps, list) { in ftrace_mod_address_lookup()
6653 ret = ftrace_func_address_lookup(mod_map, addr, size, off, sym); in ftrace_mod_address_lookup()
6656 *modname = mod_map->mod->name; in ftrace_mod_address_lookup()
6669 struct ftrace_mod_map *mod_map; in ftrace_mod_get_kallsym() local
6674 list_for_each_entry_rcu(mod_map, &ftrace_mod_maps, list) { in ftrace_mod_get_kallsym()
6676 if (symnum >= mod_map->num_funcs) { in ftrace_mod_get_kallsym()
6677 symnum -= mod_map->num_funcs; in ftrace_mod_get_kallsym()
6681 list_for_each_entry_rcu(mod_func, &mod_map->funcs, list) { in ftrace_mod_get_kallsym()
6690 strlcpy(module_name, mod_map->mod->name, MODULE_NAME_LEN); in ftrace_mod_get_kallsym()
6705 static void save_ftrace_mod_rec(struct ftrace_mod_map *mod_map, in save_ftrace_mod_rec() argument
6788 struct ftrace_mod_map *mod_map = NULL; in ftrace_free_mem() local
6806 mod_map = allocate_ftrace_mod_map(mod, start, end); in ftrace_free_mem()
6822 if (mod_map) in ftrace_free_mem()
6823 save_ftrace_mod_rec(mod_map, rec); in ftrace_free_mem()