Lines Matching refs:addrs

382 static int fprobe_graph_add_ips(unsigned long *addrs, int num)  in fprobe_graph_add_ips()  argument
388 ret = ftrace_set_filter_ips(&fprobe_graph_ops.ops, addrs, num, 0, 0); in fprobe_graph_add_ips()
404 static void fprobe_graph_remove_ips(unsigned long *addrs, int num) in fprobe_graph_remove_ips() argument
414 ftrace_set_filter_ips(&fprobe_graph_ops.ops, addrs, num, 1, 0); in fprobe_graph_remove_ips()
424 unsigned long *addrs; member
429 unsigned long *addrs; in fprobe_addr_list_add() local
434 alist->addrs[alist->index++] = addr; in fprobe_addr_list_add()
439 addrs = kcalloc(alist->size * 2, sizeof(*addrs), GFP_KERNEL); in fprobe_addr_list_add()
440 if (!addrs) in fprobe_addr_list_add()
443 memcpy(addrs, alist->addrs, alist->size * sizeof(*addrs)); in fprobe_addr_list_add()
445 kfree(alist->addrs); in fprobe_addr_list_add()
446 alist->addrs = addrs; in fprobe_addr_list_add()
483 alist.addrs = kcalloc(alist.size, sizeof(*alist.addrs), GFP_KERNEL); in fprobe_module_callback()
485 if (!alist.addrs) in fprobe_module_callback()
494 alist.addrs, alist.index, 1, 0); in fprobe_module_callback()
497 kfree(alist.addrs); in fprobe_module_callback()
525 unsigned long *addrs; in get_ftrace_locations() local
528 addrs = kcalloc(num, sizeof(*addrs), GFP_KERNEL); in get_ftrace_locations()
529 if (!addrs) in get_ftrace_locations()
535 if (!ftrace_lookup_symbols(syms, num, addrs)) in get_ftrace_locations()
536 return addrs; in get_ftrace_locations()
538 kfree(addrs); in get_ftrace_locations()
547 unsigned long *addrs; member
562 if (match->addrs) { in filter_match_callback()
569 match->addrs[match->index] = addr; in filter_match_callback()
585 unsigned long *addrs, struct module **mods, in get_ips_from_filter() argument
589 .index = 0, .size = size, .addrs = addrs, .mods = mods}; in get_ips_from_filter()
592 if (addrs && !mods) in get_ips_from_filter()
614 static int fprobe_init(struct fprobe *fp, unsigned long *addrs, int num) in fprobe_init() argument
620 if (!fp || !addrs || num <= 0) in fprobe_init()
639 addr = ftrace_location(addrs[i]); in fprobe_init()
664 unsigned long *addrs __free(kfree) = NULL; in register_fprobe()
675 addrs = kcalloc(num, sizeof(*addrs), GFP_KERNEL); in register_fprobe()
676 if (!addrs) in register_fprobe()
683 ret = get_ips_from_filter(filter, notfilter, addrs, mods, num); in register_fprobe()
687 ret = register_fprobe_ips(fp, addrs, ret); in register_fprobe()
710 int register_fprobe_ips(struct fprobe *fp, unsigned long *addrs, int num) in register_fprobe_ips() argument
715 ret = fprobe_init(fp, addrs, num); in register_fprobe_ips()
722 ret = fprobe_graph_add_ips(addrs, num); in register_fprobe_ips()
750 unsigned long *addrs; in register_fprobe_syms() local
756 addrs = get_ftrace_locations(syms, num); in register_fprobe_syms()
757 if (IS_ERR(addrs)) in register_fprobe_syms()
758 return PTR_ERR(addrs); in register_fprobe_syms()
760 ret = register_fprobe_ips(fp, addrs, num); in register_fprobe_syms()
762 kfree(addrs); in register_fprobe_syms()
786 unsigned long *addrs = NULL; in unregister_fprobe() local
796 addrs = kcalloc(hlist_array->size, sizeof(unsigned long), GFP_KERNEL); in unregister_fprobe()
797 if (!addrs) { in unregister_fprobe()
806 addrs[count++] = hlist_array->array[i].addr; in unregister_fprobe()
810 fprobe_graph_remove_ips(addrs, count); in unregister_fprobe()
818 kfree(addrs); in unregister_fprobe()