Lines Matching refs:mod_map
6385 struct ftrace_mod_map *mod_map = container_of(rcu, struct ftrace_mod_map, rcu); in ftrace_free_mod_map() local
6390 list_for_each_entry_safe(mod_func, n, &mod_map->funcs, list) { in ftrace_free_mod_map()
6396 kfree(mod_map); in ftrace_free_mod_map()
6401 struct ftrace_mod_map *mod_map; in ftrace_release_mod() local
6413 list_for_each_entry_safe(mod_map, n, &ftrace_mod_maps, list) { in ftrace_release_mod()
6414 if (mod_map->mod == mod) { in ftrace_release_mod()
6415 list_del_rcu(&mod_map->list); in ftrace_release_mod()
6416 call_rcu(&mod_map->rcu, ftrace_free_mod_map); in ftrace_release_mod()
6548 static void save_ftrace_mod_rec(struct ftrace_mod_map *mod_map, in save_ftrace_mod_rec() argument
6575 mod_map->num_funcs++; in save_ftrace_mod_rec()
6577 list_add_rcu(&mod_func->list, &mod_map->funcs); in save_ftrace_mod_rec()
6584 struct ftrace_mod_map *mod_map; in allocate_ftrace_mod_map() local
6586 mod_map = kmalloc(sizeof(*mod_map), GFP_KERNEL); in allocate_ftrace_mod_map()
6587 if (!mod_map) in allocate_ftrace_mod_map()
6590 mod_map->mod = mod; in allocate_ftrace_mod_map()
6591 mod_map->start_addr = start; in allocate_ftrace_mod_map()
6592 mod_map->end_addr = end; in allocate_ftrace_mod_map()
6593 mod_map->num_funcs = 0; in allocate_ftrace_mod_map()
6595 INIT_LIST_HEAD_RCU(&mod_map->funcs); in allocate_ftrace_mod_map()
6597 list_add_rcu(&mod_map->list, &ftrace_mod_maps); in allocate_ftrace_mod_map()
6599 return mod_map; in allocate_ftrace_mod_map()
6603 ftrace_func_address_lookup(struct ftrace_mod_map *mod_map, in ftrace_func_address_lookup() argument
6610 list_for_each_entry_rcu(mod_func, &mod_map->funcs, list) { in ftrace_func_address_lookup()
6636 struct ftrace_mod_map *mod_map; in ftrace_mod_address_lookup() local
6641 list_for_each_entry_rcu(mod_map, &ftrace_mod_maps, list) { in ftrace_mod_address_lookup()
6642 ret = ftrace_func_address_lookup(mod_map, addr, size, off, sym); in ftrace_mod_address_lookup()
6645 *modname = mod_map->mod->name; in ftrace_mod_address_lookup()
6658 struct ftrace_mod_map *mod_map; in ftrace_mod_get_kallsym() local
6663 list_for_each_entry_rcu(mod_map, &ftrace_mod_maps, list) { in ftrace_mod_get_kallsym()
6665 if (symnum >= mod_map->num_funcs) { in ftrace_mod_get_kallsym()
6666 symnum -= mod_map->num_funcs; in ftrace_mod_get_kallsym()
6670 list_for_each_entry_rcu(mod_func, &mod_map->funcs, list) { in ftrace_mod_get_kallsym()
6679 strlcpy(module_name, mod_map->mod->name, MODULE_NAME_LEN); in ftrace_mod_get_kallsym()
6694 static void save_ftrace_mod_rec(struct ftrace_mod_map *mod_map, in save_ftrace_mod_rec() argument
6777 struct ftrace_mod_map *mod_map = NULL; in ftrace_free_mem() local
6794 mod_map = allocate_ftrace_mod_map(mod, start, end); in ftrace_free_mem()
6810 if (mod_map) in ftrace_free_mem()
6811 save_ftrace_mod_rec(mod_map, rec); in ftrace_free_mem()