int i = 0;
 
        map = get_target_map(pev->target, pev->uprobes);
-       if (!map || map__load(map, NULL) < 0)
+       if (!map || map__load(map) < 0)
                return;
 
        for (i = 0; i < ntevs; i++) {
 
        if (al.map != NULL) {
                if (!al.map->dso->hit) {
                        al.map->dso->hit = 1;
-                       if (map__load(al.map, NULL) >= 0) {
+                       if (map__load(al.map) >= 0) {
                                dso__inject_build_id(al.map->dso, tool, machine);
                                /*
                                 * If this fails, too bad, let the other side
 
        }
 
        kernel_map = machine__kernel_map(machine);
-       if (map__load(kernel_map, NULL) < 0) {
+       if (map__load(kernel_map) < 0) {
                pr_err("cannot load kernel map\n");
                return -ENOENT;
        }
                if (is_caller) {
                        addr = data->call_site;
                        if (!raw_ip)
-                               sym = machine__find_kernel_function(machine, addr, &map, NULL);
+                               sym = machine__find_kernel_function(machine, addr, &map);
                } else
                        addr = data->ptr;
 
                char *caller = buf;
 
                data = rb_entry(next, struct page_stat, node);
-               sym = machine__find_kernel_function(machine, data->callsite,
-                                                   &map, NULL);
+               sym = machine__find_kernel_function(machine, data->callsite, &map);
                if (sym && sym->name)
                        caller = sym->name;
                else
                char *caller = buf;
 
                data = rb_entry(next, struct page_stat, node);
-               sym = machine__find_kernel_function(machine, data->callsite,
-                                                   &map, NULL);
+               sym = machine__find_kernel_function(machine, data->callsite, &map);
                if (sym && sym->name)
                        caller = sym->name;
                else
 
 
                thread__find_addr_map(thread, sample->cpumode, MAP__FUNCTION, from, &alf);
                if (alf.map)
-                       alf.sym = map__find_symbol(alf.map, alf.addr, NULL);
+                       alf.sym = map__find_symbol(alf.map, alf.addr);
 
                thread__find_addr_map(thread, sample->cpumode, MAP__FUNCTION, to, &alt);
                if (alt.map)
-                       alt.sym = map__find_symbol(alt.map, alt.addr, NULL);
+                       alt.sym = map__find_symbol(alt.map, alt.addr);
 
                symbol__fprintf_symname_offs(alf.sym, &alf, stdout);
                putchar('/');
 
         * Converting addresses for use by objdump requires more information.
         * map__load() does that.  See map__rip_2objdump() for details.
         */
-       if (map__load(al.map, NULL))
+       if (map__load(al.map))
                return -1;
 
        /* objdump struggles with kcore - try each map only once */
 
        /* Load kernel map */
        map = machine__kernel_map(machine);
-       ret = map__load(map, NULL);
+       ret = map__load(map);
        if (ret < 0) {
                pr_debug("map__load failed\n");
                goto out_err;
 
         * be compacted against the list of modules found in the "vmlinux"
         * code and with the one got from /proc/modules from the "kallsyms" code.
         */
-       if (__machine__load_kallsyms(&kallsyms, "/proc/kallsyms", type, true, NULL) <= 0) {
+       if (__machine__load_kallsyms(&kallsyms, "/proc/kallsyms", type, true) <= 0) {
                pr_debug("dso__load_kallsyms ");
                goto out;
        }
         * maps__reloc_vmlinux will notice and set proper ->[un]map_ip routines
         * to fixup the symbols.
         */
-       if (machine__load_vmlinux_path(&vmlinux, type, NULL) <= 0) {
+       if (machine__load_vmlinux_path(&vmlinux, type) <= 0) {
                pr_debug("Couldn't find a vmlinux that matches the kernel running on this machine, skipping test\n");
                err = TEST_SKIP;
                goto out;
                mem_end = vmlinux_map->unmap_ip(vmlinux_map, sym->end);
 
                first_pair = machine__find_kernel_symbol(&kallsyms, type,
-                                                        mem_start, NULL, NULL);
+                                                        mem_start, NULL);
                pair = first_pair;
 
                if (pair && UM(pair->start) == mem_start) {
                                 */
                                continue;
                        } else {
-                               pair = machine__find_kernel_symbol_by_name(&kallsyms, type, sym->name, NULL, NULL);
+                               pair = machine__find_kernel_symbol_by_name(&kallsyms, type, sym->name, NULL);
                                if (pair) {
                                        if (UM(pair->start) == mem_start)
                                                goto next_pair;
 
        if (!ins__is_call(dl->ins))
                return false;
 
-       if (map_groups__find_ams(&target, NULL) ||
+       if (map_groups__find_ams(&target) ||
            map__rip_2objdump(target.map, target.map->map_ip(target.map,
                                                             target.addr)) !=
            dl->ops.target.addr) {
 
 
        if (target[0] == '0' && tolower(target[1]) == 'x') {
                u64 addr = strtoull(target, NULL, 16);
-               sym = map__find_symbol(browser->map, addr, NULL);
+               sym = map__find_symbol(browser->map, addr);
        } else
-               sym = map__find_symbol_by_name(browser->map, target, NULL);
+               sym = map__find_symbol_by_name(browser->map, target);
 
        if (sym != NULL) {
                u32 *idx = symbol__browser_index(sym);
 
                        .addr = dl->ops.target.addr,
                };
 
-               if (!map_groups__find_ams(&target, NULL) &&
+               if (!map_groups__find_ams(&target) &&
                    target.sym->start == target.al_addr)
                        dl->ops.target.name = strdup(target.sym->name);
        }
 
                 * must be done prior to using kernel maps.
                 */
                if (load_map)
-                       map__load(al->map, NULL);
+                       map__load(al->map);
                al->addr = al->map->map_ip(al->map, al->addr);
        }
 }
 {
        thread__find_addr_map(thread, cpumode, type, addr, al);
        if (al->map != NULL)
-               al->sym = map__find_symbol(al->map, al->addr, NULL);
+               al->sym = map__find_symbol(al->map, al->addr);
        else
                al->sym = NULL;
 }
                        al->filtered |= (1 << HIST_FILTER__DSO);
                }
 
-               al->sym = map__find_symbol(al->map, al->addr, NULL);
+               al->sym = map__find_symbol(al->map, al->addr);
        }
 
        if (symbol_conf.sym_list &&
        al->sym = NULL;
 
        if (al->map)
-               al->sym = map__find_symbol(al->map, al->addr, NULL);
+               al->sym = map__find_symbol(al->map, al->addr);
 }
 
                goto out_put;
 
        /* Load maps to ensure dso->is_64_bit has been updated */
-       map__load(al.map, NULL);
+       map__load(al.map);
 
        x86_64 = al.map->dso->is_64_bit;
 
 
                start_ip = *ip;
 
                /* Load maps to ensure dso->is_64_bit has been updated */
-               map__load(al.map, NULL);
+               map__load(al.map);
 
                x86_64 = al.map->dso->is_64_bit;
 
        if (!map)
                return 0;
 
-       if (map__load(map, NULL))
+       if (map__load(map))
                return 0;
 
        start = dso__first_symbol(map->dso, MAP__FUNCTION);
 
 }
 
 int __machine__load_kallsyms(struct machine *machine, const char *filename,
-                            enum map_type type, bool no_kcore, symbol_filter_t filter)
+                            enum map_type type, bool no_kcore)
 {
        struct map *map = machine__kernel_map(machine);
-       int ret = __dso__load_kallsyms(map->dso, filename, map, no_kcore, filter);
+       int ret = __dso__load_kallsyms(map->dso, filename, map, no_kcore);
 
        if (ret > 0) {
                dso__set_loaded(map->dso, type);
 }
 
 int machine__load_kallsyms(struct machine *machine, const char *filename,
-                          enum map_type type, symbol_filter_t filter)
+                          enum map_type type)
 {
-       return __machine__load_kallsyms(machine, filename, type, false, filter);
+       return __machine__load_kallsyms(machine, filename, type, false);
 }
 
-int machine__load_vmlinux_path(struct machine *machine, enum map_type type,
-                              symbol_filter_t filter)
+int machine__load_vmlinux_path(struct machine *machine, enum map_type type)
 {
        struct map *map = machine__kernel_map(machine);
-       int ret = dso__load_vmlinux_path(map->dso, map, filter);
+       int ret = dso__load_vmlinux_path(map->dso, map);
 
        if (ret > 0)
                dso__set_loaded(map->dso, type);
                        /*
                         * preload dso of guest kernel and modules
                         */
-                       dso__load(kernel, machine__kernel_map(machine), NULL);
+                       dso__load(kernel, machine__kernel_map(machine));
                }
        }
        return 0;
         */
        machine->kernel_start = 1ULL << 63;
        if (map) {
-               err = map__load(map, NULL);
+               err = map__load(map);
                if (map->start)
                        machine->kernel_start = map->start;
        }
 {
        struct machine *machine = vmachine;
        struct map *map;
-       struct symbol *sym = map_groups__find_symbol(&machine->kmaps, MAP__FUNCTION, *addrp, &map,  NULL);
+       struct symbol *sym = map_groups__find_symbol(&machine->kmaps, MAP__FUNCTION, *addrp, &map);
 
        if (sym == NULL)
                return NULL;
 
 static inline
 struct symbol *machine__find_kernel_symbol(struct machine *machine,
                                           enum map_type type, u64 addr,
-                                          struct map **mapp,
-                                          symbol_filter_t filter)
+                                          struct map **mapp)
 {
-       return map_groups__find_symbol(&machine->kmaps, type, addr,
-                                      mapp, filter);
+       return map_groups__find_symbol(&machine->kmaps, type, addr, mapp);
 }
 
 static inline
 struct symbol *machine__find_kernel_symbol_by_name(struct machine *machine,
                                                   enum map_type type, const char *name,
-                                                  struct map **mapp,
-                                                  symbol_filter_t filter)
+                                                  struct map **mapp)
 {
-       return map_groups__find_symbol_by_name(&machine->kmaps, type, name,
-                                              mapp, filter);
+       return map_groups__find_symbol_by_name(&machine->kmaps, type, name, mapp);
 }
 
 static inline
 struct symbol *machine__find_kernel_function(struct machine *machine, u64 addr,
-                                            struct map **mapp,
-                                            symbol_filter_t filter)
+                                            struct map **mapp)
 {
        return machine__find_kernel_symbol(machine, MAP__FUNCTION, addr,
-                                          mapp, filter);
+                                          mapp);
 }
 
 static inline
 struct symbol *machine__find_kernel_function_by_name(struct machine *machine,
                                                     const char *name,
-                                                    struct map **mapp,
-                                                    symbol_filter_t filter)
+                                                    struct map **mapp)
 {
-       return map_groups__find_function_by_name(&machine->kmaps, name, mapp,
-                                                filter);
+       return map_groups__find_function_by_name(&machine->kmaps, name, mapp);
 }
 
 struct map *machine__findnew_module_map(struct machine *machine, u64 start,
 int arch__fix_module_text_start(u64 *start, const char *name);
 
 int __machine__load_kallsyms(struct machine *machine, const char *filename,
-                            enum map_type type, bool no_kcore, symbol_filter_t filter);
+                            enum map_type type, bool no_kcore);
 int machine__load_kallsyms(struct machine *machine, const char *filename,
-                          enum map_type type, symbol_filter_t filter);
-int machine__load_vmlinux_path(struct machine *machine, enum map_type type,
-                              symbol_filter_t filter);
+                          enum map_type type);
+int machine__load_vmlinux_path(struct machine *machine, enum map_type type);
 
 size_t machine__fprintf_dsos_buildid(struct machine *machine, FILE *fp,
                                     bool (skip)(struct dso *dso, int parm), int parm);
 
 
 #define DSO__DELETED "(deleted)"
 
-int map__load(struct map *map, symbol_filter_t filter)
+int map__load(struct map *map)
 {
        const char *name = map->dso->long_name;
        int nr;
        if (dso__loaded(map->dso, map->type))
                return 0;
 
-       nr = dso__load(map->dso, map, filter);
+       nr = dso__load(map->dso, map);
        if (nr < 0) {
                if (map->dso->has_build_id) {
                        char sbuild_id[SBUILD_ID_SIZE];
                        pr_warning("%.*s was updated (is prelink enabled?). "
                                "Restart the long running apps that use it!\n",
                                   (int)real_len, name);
-               } else if (filter) {
-                       pr_warning("no symbols passed the given filter.\n");
-                       return -2;      /* Empty but maybe by the filter */
                } else {
                        pr_warning("no symbols found in %s, maybe install "
                                   "a debug package?\n", name);
        return strcmp(namea, nameb);
 }
 
-struct symbol *map__find_symbol(struct map *map, u64 addr,
-                               symbol_filter_t filter)
+struct symbol *map__find_symbol(struct map *map, u64 addr)
 {
-       if (map__load(map, filter) < 0)
+       if (map__load(map) < 0)
                return NULL;
 
        return dso__find_symbol(map->dso, map->type, addr);
 }
 
-struct symbol *map__find_symbol_by_name(struct map *map, const char *name,
-                                       symbol_filter_t filter)
+struct symbol *map__find_symbol_by_name(struct map *map, const char *name)
 {
-       if (map__load(map, filter) < 0)
+       if (map__load(map) < 0)
                return NULL;
 
        if (!dso__sorted_by_name(map->dso, map->type))
 
 struct symbol *map_groups__find_symbol(struct map_groups *mg,
                                       enum map_type type, u64 addr,
-                                      struct map **mapp,
-                                      symbol_filter_t filter)
+                                      struct map **mapp)
 {
        struct map *map = map_groups__find(mg, type, addr);
 
        /* Ensure map is loaded before using map->map_ip */
-       if (map != NULL && map__load(map, filter) >= 0) {
+       if (map != NULL && map__load(map) >= 0) {
                if (mapp != NULL)
                        *mapp = map;
-               return map__find_symbol(map, map->map_ip(map, addr), filter);
+               return map__find_symbol(map, map->map_ip(map, addr));
        }
 
        return NULL;
 }
 
 struct symbol *maps__find_symbol_by_name(struct maps *maps, const char *name,
-                                        struct map **mapp, symbol_filter_t filter)
+                                        struct map **mapp)
 {
        struct symbol *sym;
        struct rb_node *nd;
        for (nd = rb_first(&maps->entries); nd; nd = rb_next(nd)) {
                struct map *pos = rb_entry(nd, struct map, rb_node);
 
-               sym = map__find_symbol_by_name(pos, name, filter);
+               sym = map__find_symbol_by_name(pos, name);
 
                if (sym == NULL)
                        continue;
 struct symbol *map_groups__find_symbol_by_name(struct map_groups *mg,
                                               enum map_type type,
                                               const char *name,
-                                              struct map **mapp,
-                                              symbol_filter_t filter)
+                                              struct map **mapp)
 {
-       struct symbol *sym = maps__find_symbol_by_name(&mg->maps[type], name, mapp, filter);
+       struct symbol *sym = maps__find_symbol_by_name(&mg->maps[type], name, mapp);
 
        return sym;
 }
 
-int map_groups__find_ams(struct addr_map_symbol *ams, symbol_filter_t filter)
+int map_groups__find_ams(struct addr_map_symbol *ams)
 {
        if (ams->addr < ams->map->start || ams->addr >= ams->map->end) {
                if (ams->map->groups == NULL)
        }
 
        ams->al_addr = ams->map->map_ip(ams->map, ams->addr);
-       ams->sym = map__find_symbol(ams->map, ams->al_addr, filter);
+       ams->sym = map__find_symbol(ams->map, ams->al_addr);
 
        return ams->sym ? 0 : -1;
 }
 
  * @map: the 'struct map *' in which symbols itereated
  * @sym_name: the symbol name
  * @pos: the 'struct symbol *' to use as a loop cursor
- * @filter: to use when loading the DSO
  */
-#define __map__for_each_symbol_by_name(map, sym_name, pos, filter)     \
-       for (pos = map__find_symbol_by_name(map, sym_name, filter);     \
+#define __map__for_each_symbol_by_name(map, sym_name, pos)     \
+       for (pos = map__find_symbol_by_name(map, sym_name);     \
             pos && arch__compare_symbol_names(pos->name, sym_name) == 0;       \
             pos = symbol__next_by_name(pos))
 
 #define map__for_each_symbol_by_name(map, sym_name, pos)               \
-       __map__for_each_symbol_by_name(map, sym_name, (pos), NULL)
-
-typedef int (*symbol_filter_t)(struct map *map, struct symbol *sym);
+       __map__for_each_symbol_by_name(map, sym_name, (pos))
 
 int arch__compare_symbol_names(const char *namea, const char *nameb);
 void map__init(struct map *map, enum map_type type,
 int map__fprintf_srcline(struct map *map, u64 addr, const char *prefix,
                         FILE *fp);
 
-int map__load(struct map *map, symbol_filter_t filter);
-struct symbol *map__find_symbol(struct map *map,
-                               u64 addr, symbol_filter_t filter);
-struct symbol *map__find_symbol_by_name(struct map *map, const char *name,
-                                       symbol_filter_t filter);
+int map__load(struct map *map);
+struct symbol *map__find_symbol(struct map *map, u64 addr);
+struct symbol *map__find_symbol_by_name(struct map *map, const char *name);
 void map__fixup_start(struct map *map);
 void map__fixup_end(struct map *map);
 
 struct map *maps__first(struct maps *maps);
 struct map *map__next(struct map *map);
 struct symbol *maps__find_symbol_by_name(struct maps *maps, const char *name,
-                                         struct map **mapp, symbol_filter_t filter);
+                                         struct map **mapp);
 void map_groups__init(struct map_groups *mg, struct machine *machine);
 void map_groups__exit(struct map_groups *mg);
 int map_groups__clone(struct thread *thread,
 
 struct symbol *map_groups__find_symbol(struct map_groups *mg,
                                       enum map_type type, u64 addr,
-                                      struct map **mapp,
-                                      symbol_filter_t filter);
+                                      struct map **mapp);
 
 struct symbol *map_groups__find_symbol_by_name(struct map_groups *mg,
                                               enum map_type type,
                                               const char *name,
-                                              struct map **mapp,
-                                              symbol_filter_t filter);
+                                              struct map **mapp);
 
 struct addr_map_symbol;
 
-int map_groups__find_ams(struct addr_map_symbol *ams, symbol_filter_t filter);
+int map_groups__find_ams(struct addr_map_symbol *ams);
 
 static inline
 struct symbol *map_groups__find_function_by_name(struct map_groups *mg,
-                                                const char *name, struct map **mapp,
-                                                symbol_filter_t filter)
+                                                const char *name, struct map **mapp)
 {
-       return map_groups__find_symbol_by_name(mg, MAP__FUNCTION, name, mapp, filter);
+       return map_groups__find_symbol_by_name(mg, MAP__FUNCTION, name, mapp);
 }
 
 int map_groups__fixup_overlappings(struct map_groups *mg, struct map *map,
 
 static struct symbol *__find_kernel_function_by_name(const char *name,
                                                     struct map **mapp)
 {
-       return machine__find_kernel_function_by_name(host_machine, name, mapp,
-                                                    NULL);
+       return machine__find_kernel_function_by_name(host_machine, name, mapp);
 }
 
 static struct symbol *__find_kernel_function(u64 addr, struct map **mapp)
 {
-       return machine__find_kernel_function(host_machine, addr, mapp, NULL);
+       return machine__find_kernel_function(host_machine, addr, mapp);
 }
 
 static struct ref_reloc_sym *kernel_get_ref_reloc_sym(void)
        struct kmap *kmap;
        struct map *map = machine__kernel_map(host_machine);
 
-       if (map__load(map, NULL) < 0)
+       if (map__load(map) < 0)
                return NULL;
 
        kmap = map__kmap(map);
        vmlinux_name = symbol_conf.vmlinux_name;
        dso->load_errno = 0;
        if (vmlinux_name)
-               ret = dso__load_vmlinux(dso, map, vmlinux_name, false, NULL);
+               ret = dso__load_vmlinux(dso, map, vmlinux_name, false);
        else
-               ret = dso__load_vmlinux_path(dso, map, NULL);
+               ret = dso__load_vmlinux_path(dso, map);
 found:
        *pdso = dso;
        return ret;
                map = dso__new_map(tp->module);
                if (!map)
                        goto out;
-               sym = map__find_symbol(map, addr, NULL);
+               sym = map__find_symbol(map, addr);
        } else {
                if (tp->symbol && !addr) {
                        if (kernel_get_symbol_address_by_name(tp->symbol,
        struct symbol *sym;
        struct rb_node *tmp;
 
-       if (map__load(map, NULL) < 0)
+       if (map__load(map) < 0)
                return 0;
 
        map__for_each_symbol(map, sym, tmp) {
                return -EINVAL;
        }
 
-       ret = map__load(map, NULL);
+       ret = map__load(map);
        if (ret) {
                if (ret == -2) {
                        char *str = strfilter__string(_filter);
 
  * And always look at the original dso, not at debuginfo packages, that
  * have the PLT data stripped out (shdr_rel_plt.sh_type == SHT_NOBITS).
  */
-int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss, struct map *map,
-                               symbol_filter_t filter)
+int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss, struct map *map)
 {
        uint32_t nr_rel_entries, idx;
        GElf_Sym sym;
                        if (!f)
                                goto out_elf_end;
 
-                       if (filter && filter(map, f))
-                               symbol__delete(f);
-                       else {
-                               symbols__insert(&dso->symbols[map->type], f);
-                               ++nr;
-                       }
+                       symbols__insert(&dso->symbols[map->type], f);
+                       ++nr;
                }
        } else if (shdr_rel_plt.sh_type == SHT_REL) {
                GElf_Rel pos_mem, *pos;
                        if (!f)
                                goto out_elf_end;
 
-                       if (filter && filter(map, f))
-                               symbol__delete(f);
-                       else {
-                               symbols__insert(&dso->symbols[map->type], f);
-                               ++nr;
-                       }
+                       symbols__insert(&dso->symbols[map->type], f);
+                       ++nr;
                }
        }
 
 void __weak arch__sym_update(struct symbol *s __maybe_unused,
                GElf_Sym *sym __maybe_unused) { }
 
-int dso__load_sym(struct dso *dso, struct map *map,
-                 struct symsrc *syms_ss, struct symsrc *runtime_ss,
-                 symbol_filter_t filter, int kmodule)
+int dso__load_sym(struct dso *dso, struct map *map, struct symsrc *syms_ss,
+                 struct symsrc *runtime_ss, int kmodule)
 {
        struct kmap *kmap = dso->kernel ? map__kmap(map) : NULL;
        struct map_groups *kmaps = kmap ? map__kmaps(map) : NULL;
 
                arch__sym_update(f, &sym);
 
-               if (filter && filter(curr_map, f))
-                       symbol__delete(f);
-               else {
-                       __symbols__insert(&curr_dso->symbols[curr_map->type], f, dso->kernel);
-                       nr++;
-               }
+               __symbols__insert(&curr_dso->symbols[curr_map->type], f, dso->kernel);
+               nr++;
        }
 
        /*
 
 
 int dso__synthesize_plt_symbols(struct dso *dso __maybe_unused,
                                struct symsrc *ss __maybe_unused,
-                               struct map *map __maybe_unused,
-                               symbol_filter_t filter __maybe_unused)
+                               struct map *map __maybe_unused)
 {
        return 0;
 }
 int dso__load_sym(struct dso *dso, struct map *map __maybe_unused,
                  struct symsrc *ss,
                  struct symsrc *runtime_ss __maybe_unused,
-                 symbol_filter_t filter __maybe_unused,
                  int kmodule __maybe_unused)
 {
        unsigned char build_id[BUILD_ID_SIZE];
 
 #include <symbol/kallsyms.h>
 #include <sys/utsname.h>
 
-static int dso__load_kernel_sym(struct dso *dso, struct map *map,
-                               symbol_filter_t filter);
-static int dso__load_guest_kernel_sym(struct dso *dso, struct map *map,
-                       symbol_filter_t filter);
+static int dso__load_kernel_sym(struct dso *dso, struct map *map);
+static int dso__load_guest_kernel_sym(struct dso *dso, struct map *map);
 static bool symbol__is_idle(const char *name);
 
 int vmlinux_path__nr_entries;
        return kallsyms__parse(filename, &args, map__process_kallsym_symbol);
 }
 
-static int dso__split_kallsyms_for_kcore(struct dso *dso, struct map *map,
-                                        symbol_filter_t filter)
+static int dso__split_kallsyms_for_kcore(struct dso *dso, struct map *map)
 {
        struct map_groups *kmaps = map__kmaps(map);
        struct map *curr_map;
 
                curr_map = map_groups__find(kmaps, map->type, pos->start);
 
-               if (!curr_map || (filter && filter(curr_map, pos))) {
+               if (!curr_map) {
                        symbol__delete(pos);
                        continue;
                }
  * kernel range is broken in several maps, named [kernel].N, as we don't have
  * the original ELF section names vmlinux have.
  */
-static int dso__split_kallsyms(struct dso *dso, struct map *map, u64 delta,
-                              symbol_filter_t filter)
+static int dso__split_kallsyms(struct dso *dso, struct map *map, u64 delta)
 {
        struct map_groups *kmaps = map__kmaps(map);
        struct machine *machine;
 
                        if (count == 0) {
                                curr_map = map;
-                               goto filter_symbol;
+                               goto add_symbol;
                        }
 
                        if (dso->kernel == DSO_TYPE_GUEST_KERNEL)
                        pos->start -= delta;
                        pos->end -= delta;
                }
-filter_symbol:
-               if (filter && filter(curr_map, pos)) {
-discard_symbol:                rb_erase(&pos->rb_node, root);
-                       symbol__delete(pos);
-               } else {
-                       if (curr_map != map) {
-                               rb_erase(&pos->rb_node, root);
-                               symbols__insert(&curr_map->dso->symbols[curr_map->type], pos);
-                               ++moved;
-                       } else
-                               ++count;
-               }
+add_symbol:
+               if (curr_map != map) {
+                       rb_erase(&pos->rb_node, root);
+                       symbols__insert(&curr_map->dso->symbols[curr_map->type], pos);
+                       ++moved;
+               } else
+                       ++count;
+
+               continue;
+discard_symbol:
+               rb_erase(&pos->rb_node, root);
+               symbol__delete(pos);
        }
 
        if (curr_map != map &&
 }
 
 int __dso__load_kallsyms(struct dso *dso, const char *filename,
-                        struct map *map, bool no_kcore, symbol_filter_t filter)
+                        struct map *map, bool no_kcore)
 {
        u64 delta = 0;
 
                dso->symtab_type = DSO_BINARY_TYPE__KALLSYMS;
 
        if (!no_kcore && !dso__load_kcore(dso, map, filename))
-               return dso__split_kallsyms_for_kcore(dso, map, filter);
+               return dso__split_kallsyms_for_kcore(dso, map);
        else
-               return dso__split_kallsyms(dso, map, delta, filter);
+               return dso__split_kallsyms(dso, map, delta);
 }
 
 int dso__load_kallsyms(struct dso *dso, const char *filename,
-                      struct map *map, symbol_filter_t filter)
+                      struct map *map)
 {
-       return __dso__load_kallsyms(dso, filename, map, false, filter);
+       return __dso__load_kallsyms(dso, filename, map, false);
 }
 
-static int dso__load_perf_map(struct dso *dso, struct map *map,
-                             symbol_filter_t filter)
+static int dso__load_perf_map(struct dso *dso, struct map *map)
 {
        char *line = NULL;
        size_t n;
                if (sym == NULL)
                        goto out_delete_line;
 
-               if (filter && filter(map, sym))
-                       symbol__delete(sym);
-               else {
-                       symbols__insert(&dso->symbols[map->type], sym);
-                       nr_syms++;
-               }
+               symbols__insert(&dso->symbols[map->type], sym);
+               nr_syms++;
        }
 
        free(line);
        }
 }
 
-int dso__load(struct dso *dso, struct map *map, symbol_filter_t filter)
+int dso__load(struct dso *dso, struct map *map)
 {
        char *name;
        int ret = -1;
 
        if (dso->kernel) {
                if (dso->kernel == DSO_TYPE_KERNEL)
-                       ret = dso__load_kernel_sym(dso, map, filter);
+                       ret = dso__load_kernel_sym(dso, map);
                else if (dso->kernel == DSO_TYPE_GUEST_KERNEL)
-                       ret = dso__load_guest_kernel_sym(dso, map, filter);
+                       ret = dso__load_guest_kernel_sym(dso, map);
 
                goto out;
        }
                        goto out;
                }
 
-               ret = dso__load_perf_map(dso, map, filter);
+               ret = dso__load_perf_map(dso, map);
                dso->symtab_type = ret > 0 ? DSO_BINARY_TYPE__JAVA_JIT :
                                             DSO_BINARY_TYPE__NOT_FOUND;
                goto out;
                        kmod = true;
 
        if (syms_ss)
-               ret = dso__load_sym(dso, map, syms_ss, runtime_ss, filter, kmod);
+               ret = dso__load_sym(dso, map, syms_ss, runtime_ss, kmod);
        else
                ret = -1;
 
        if (ret > 0) {
                int nr_plt;
 
-               nr_plt = dso__synthesize_plt_symbols(dso, runtime_ss, map, filter);
+               nr_plt = dso__synthesize_plt_symbols(dso, runtime_ss, map);
                if (nr_plt > 0)
                        ret += nr_plt;
        }
 }
 
 int dso__load_vmlinux(struct dso *dso, struct map *map,
-                     const char *vmlinux, bool vmlinux_allocated,
-                     symbol_filter_t filter)
+                     const char *vmlinux, bool vmlinux_allocated)
 {
        int err = -1;
        struct symsrc ss;
        if (symsrc__init(&ss, dso, symfs_vmlinux, symtab_type))
                return -1;
 
-       err = dso__load_sym(dso, map, &ss, &ss, filter, 0);
+       err = dso__load_sym(dso, map, &ss, &ss, 0);
        symsrc__destroy(&ss);
 
        if (err > 0) {
        return err;
 }
 
-int dso__load_vmlinux_path(struct dso *dso, struct map *map,
-                          symbol_filter_t filter)
+int dso__load_vmlinux_path(struct dso *dso, struct map *map)
 {
        int i, err = 0;
        char *filename = NULL;
                 vmlinux_path__nr_entries + 1);
 
        for (i = 0; i < vmlinux_path__nr_entries; ++i) {
-               err = dso__load_vmlinux(dso, map, vmlinux_path[i], false, filter);
+               err = dso__load_vmlinux(dso, map, vmlinux_path[i], false);
                if (err > 0)
                        goto out;
        }
        if (!symbol_conf.ignore_vmlinux_buildid)
                filename = dso__build_id_filename(dso, NULL, 0);
        if (filename != NULL) {
-               err = dso__load_vmlinux(dso, map, filename, true, filter);
+               err = dso__load_vmlinux(dso, map, filename, true);
                if (err > 0)
                        goto out;
                free(filename);
        return strdup(path);
 }
 
-static int dso__load_kernel_sym(struct dso *dso, struct map *map,
-                               symbol_filter_t filter)
+static int dso__load_kernel_sym(struct dso *dso, struct map *map)
 {
        int err;
        const char *kallsyms_filename = NULL;
        }
 
        if (!symbol_conf.ignore_vmlinux && symbol_conf.vmlinux_name != NULL) {
-               return dso__load_vmlinux(dso, map, symbol_conf.vmlinux_name,
-                                        false, filter);
+               return dso__load_vmlinux(dso, map, symbol_conf.vmlinux_name, false);
        }
 
        if (!symbol_conf.ignore_vmlinux && vmlinux_path != NULL) {
-               err = dso__load_vmlinux_path(dso, map, filter);
+               err = dso__load_vmlinux_path(dso, map);
                if (err > 0)
                        return err;
        }
        kallsyms_filename = kallsyms_allocated_filename;
 
 do_kallsyms:
-       err = dso__load_kallsyms(dso, kallsyms_filename, map, filter);
+       err = dso__load_kallsyms(dso, kallsyms_filename, map);
        if (err > 0)
                pr_debug("Using %s for symbols\n", kallsyms_filename);
        free(kallsyms_allocated_filename);
        return err;
 }
 
-static int dso__load_guest_kernel_sym(struct dso *dso, struct map *map,
-                                     symbol_filter_t filter)
+static int dso__load_guest_kernel_sym(struct dso *dso, struct map *map)
 {
        int err;
        const char *kallsyms_filename = NULL;
                if (symbol_conf.default_guest_vmlinux_name != NULL) {
                        err = dso__load_vmlinux(dso, map,
                                                symbol_conf.default_guest_vmlinux_name,
-                                               false, filter);
+                                               false);
                        return err;
                }
 
                kallsyms_filename = path;
        }
 
-       err = dso__load_kallsyms(dso, kallsyms_filename, map, filter);
+       err = dso__load_kallsyms(dso, kallsyms_filename, map);
        if (err > 0)
                pr_debug("Using %s for symbols\n", kallsyms_filename);
        if (err > 0 && !dso__is_kcore(dso)) {
 
 bool symsrc__has_symtab(struct symsrc *ss);
 bool symsrc__possibly_runtime(struct symsrc *ss);
 
-int dso__load(struct dso *dso, struct map *map, symbol_filter_t filter);
+int dso__load(struct dso *dso, struct map *map);
 int dso__load_vmlinux(struct dso *dso, struct map *map,
-                     const char *vmlinux, bool vmlinux_allocated,
-                     symbol_filter_t filter);
-int dso__load_vmlinux_path(struct dso *dso, struct map *map,
-                          symbol_filter_t filter);
+                     const char *vmlinux, bool vmlinux_allocated);
+int dso__load_vmlinux_path(struct dso *dso, struct map *map);
 int __dso__load_kallsyms(struct dso *dso, const char *filename, struct map *map,
-                        bool no_kcore, symbol_filter_t filter);
-int dso__load_kallsyms(struct dso *dso, const char *filename, struct map *map,
-                      symbol_filter_t filter);
+                        bool no_kcore);
+int dso__load_kallsyms(struct dso *dso, const char *filename, struct map *map);
 
 void dso__insert_symbol(struct dso *dso, enum map_type type,
                        struct symbol *sym);
                         const char *dir, int unset __maybe_unused);
 
 int dso__load_sym(struct dso *dso, struct map *map, struct symsrc *syms_ss,
-                 struct symsrc *runtime_ss, symbol_filter_t filter,
-                 int kmodule);
+                 struct symsrc *runtime_ss, int kmodule);
 int dso__synthesize_plt_symbols(struct dso *dso, struct symsrc *ss,
-                               struct map *map, symbol_filter_t filter);
+                               struct map *map);
 
 void __symbols__insert(struct rb_root *symbols, struct symbol *sym, bool kernel);
 void symbols__insert(struct rb_root *symbols, struct symbol *sym);