|
@@ -2573,7 +2573,8 @@ int show_perf_probe_events(struct strfilter *filter)
|
|
|
}
|
|
|
|
|
|
static int get_new_event_name(char *buf, size_t len, const char *base,
|
|
|
- struct strlist *namelist, bool allow_suffix)
|
|
|
+ struct strlist *namelist, bool ret_event,
|
|
|
+ bool allow_suffix)
|
|
|
{
|
|
|
int i, ret;
|
|
|
char *p, *nbase;
|
|
@@ -2590,7 +2591,7 @@ static int get_new_event_name(char *buf, size_t len, const char *base,
|
|
|
*p = '\0';
|
|
|
|
|
|
/* Try no suffix number */
|
|
|
- ret = e_snprintf(buf, len, "%s", nbase);
|
|
|
+ ret = e_snprintf(buf, len, "%s%s", nbase, ret_event ? "__return" : "");
|
|
|
if (ret < 0) {
|
|
|
pr_debug("snprintf() failed: %d\n", ret);
|
|
|
goto out;
|
|
@@ -2689,8 +2690,8 @@ static int probe_trace_event__set_name(struct probe_trace_event *tev,
|
|
|
group = PERFPROBE_GROUP;
|
|
|
|
|
|
/* Get an unused new event name */
|
|
|
- ret = get_new_event_name(buf, 64, event,
|
|
|
- namelist, allow_suffix);
|
|
|
+ ret = get_new_event_name(buf, 64, event, namelist,
|
|
|
+ tev->point.retprobe, allow_suffix);
|
|
|
if (ret < 0)
|
|
|
return ret;
|
|
|
|