The function "try_to_find_probe_trace_events" uses return
error code as ENOENT in two places. First place is after
"open_debuginfo" when opening debuginfo fails and secondly,
after when not finding the probe point. This function is
invoked during bpf load and there are other exit points in
this code path which returns ENOENT. This makes it difficult
to understand the exact reason for exit.

Patches changes the exit code from ENOENT to:
- ENODATA when it fails to find debuginfo
- ENODEV when it fails to find probe point

Signed-off-by: Athira Rajeev <atraj...@linux.vnet.ibm.com>
---
 tools/perf/util/probe-event.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 0c24bc7afbca..881d94f65a6b 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -917,7 +917,7 @@ static int try_to_find_probe_trace_events(struct 
perf_probe_event *pev,
        dinfo = open_debuginfo(pev->target, pev->nsi, !need_dwarf);
        if (!dinfo) {
                if (need_dwarf)
-                       return -ENOENT;
+                       return -ENODATA;
                pr_debug("Could not open debuginfo. Try to use symbols.\n");
                return 0;
        }
@@ -956,7 +956,7 @@ static int try_to_find_probe_trace_events(struct 
perf_probe_event *pev,
        if (ntevs == 0) {       /* No error but failed to find probe point. */
                pr_warning("Probe point '%s' not found.\n",
                           synthesize_perf_probe_point(&pev->point));
-               return -ENOENT;
+               return -ENODEV;
        } else if (ntevs < 0) {
                /* Error path : ntevs < 0 */
                pr_debug("An error occurred in debuginfo analysis (%d).\n", 
ntevs);
-- 
2.31.1

Reply via email to