perf probe: Fix 'function unused' warning
By 'make build-test' a warning is found in probe-event.c that, after
commit 419e873828
(perf probe: Show the error reason comes from
invalid DSO) the only user of kernel_get_module_dso() is
open_debuginfo(). Which is not compiled if HAVE_DWARF_SUPPORT not set.
'make build-test' found this problem when make_minimal.
This patch moves kernel_get_module_dso() to HAVE_DWARF_SUPPORT ifdef
section.
Signed-off-by: Wang Nan <wangnan0@huawei.com>
Acked-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1432779905-206143-1-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
44848cdbbd
commit
60fb774292
1 changed files with 33 additions and 32 deletions
|
@ -200,38 +200,6 @@ static void put_target_map(struct map *map, bool user)
|
|||
}
|
||||
|
||||
|
||||
static int kernel_get_module_dso(const char *module, struct dso **pdso)
|
||||
{
|
||||
struct dso *dso;
|
||||
struct map *map;
|
||||
const char *vmlinux_name;
|
||||
int ret = 0;
|
||||
|
||||
if (module) {
|
||||
list_for_each_entry(dso, &host_machine->kernel_dsos.head,
|
||||
node) {
|
||||
if (strncmp(dso->short_name + 1, module,
|
||||
dso->short_name_len - 2) == 0)
|
||||
goto found;
|
||||
}
|
||||
pr_debug("Failed to find module %s.\n", module);
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
map = host_machine->vmlinux_maps[MAP__FUNCTION];
|
||||
dso = map->dso;
|
||||
|
||||
vmlinux_name = symbol_conf.vmlinux_name;
|
||||
dso->load_errno = 0;
|
||||
if (vmlinux_name)
|
||||
ret = dso__load_vmlinux(dso, map, vmlinux_name, false, NULL);
|
||||
else
|
||||
ret = dso__load_vmlinux_path(dso, map, NULL);
|
||||
found:
|
||||
*pdso = dso;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int convert_exec_to_group(const char *exec, char **result)
|
||||
{
|
||||
char *ptr1, *ptr2, *exec_copy;
|
||||
|
@ -279,6 +247,39 @@ static void clear_probe_trace_events(struct probe_trace_event *tevs, int ntevs)
|
|||
}
|
||||
|
||||
#ifdef HAVE_DWARF_SUPPORT
|
||||
|
||||
static int kernel_get_module_dso(const char *module, struct dso **pdso)
|
||||
{
|
||||
struct dso *dso;
|
||||
struct map *map;
|
||||
const char *vmlinux_name;
|
||||
int ret = 0;
|
||||
|
||||
if (module) {
|
||||
list_for_each_entry(dso, &host_machine->kernel_dsos.head,
|
||||
node) {
|
||||
if (strncmp(dso->short_name + 1, module,
|
||||
dso->short_name_len - 2) == 0)
|
||||
goto found;
|
||||
}
|
||||
pr_debug("Failed to find module %s.\n", module);
|
||||
return -ENOENT;
|
||||
}
|
||||
|
||||
map = host_machine->vmlinux_maps[MAP__FUNCTION];
|
||||
dso = map->dso;
|
||||
|
||||
vmlinux_name = symbol_conf.vmlinux_name;
|
||||
dso->load_errno = 0;
|
||||
if (vmlinux_name)
|
||||
ret = dso__load_vmlinux(dso, map, vmlinux_name, false, NULL);
|
||||
else
|
||||
ret = dso__load_vmlinux_path(dso, map, NULL);
|
||||
found:
|
||||
*pdso = dso;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* Some binaries like glibc have special symbols which are on the symbol
|
||||
* table, but not in the debuginfo. If we can find the address of the
|
||||
|
|
Loading…
Reference in a new issue