diff options
Diffstat (limited to 'tools/perf/util/evsel.c')
-rw-r--r-- | tools/perf/util/evsel.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index 2ddc81271855..236bdf25db6d 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c | |||
@@ -252,42 +252,42 @@ static int perf_evsel__hw_cache_name(struct perf_evsel *evsel, char *bf, size_t | |||
252 | return ret + perf_evsel__add_modifiers(evsel, bf + ret, size - ret); | 252 | return ret + perf_evsel__add_modifiers(evsel, bf + ret, size - ret); |
253 | } | 253 | } |
254 | 254 | ||
255 | static int perf_evsel__tracepoint_name(struct perf_evsel *evsel, char *bf, size_t size) | 255 | const char *perf_evsel__name(struct perf_evsel *evsel) |
256 | { | 256 | { |
257 | return scnprintf(bf, size, "%s", evsel->name ?: "unknown tracepoint"); | 257 | char bf[128]; |
258 | } | ||
259 | 258 | ||
260 | int perf_evsel__name(struct perf_evsel *evsel, char *bf, size_t size) | 259 | if (evsel->name) |
261 | { | 260 | return evsel->name; |
262 | int ret; | ||
263 | 261 | ||
264 | switch (evsel->attr.type) { | 262 | switch (evsel->attr.type) { |
265 | case PERF_TYPE_RAW: | 263 | case PERF_TYPE_RAW: |
266 | ret = scnprintf(bf, size, "raw 0x%" PRIx64, evsel->attr.config); | 264 | scnprintf(bf, sizeof(bf), "raw 0x%" PRIx64, evsel->attr.config); |
267 | break; | 265 | break; |
268 | 266 | ||
269 | case PERF_TYPE_HARDWARE: | 267 | case PERF_TYPE_HARDWARE: |
270 | ret = perf_evsel__hw_name(evsel, bf, size); | 268 | perf_evsel__hw_name(evsel, bf, sizeof(bf)); |
271 | break; | 269 | break; |
272 | 270 | ||
273 | case PERF_TYPE_HW_CACHE: | 271 | case PERF_TYPE_HW_CACHE: |
274 | ret = perf_evsel__hw_cache_name(evsel, bf, size); | 272 | perf_evsel__hw_cache_name(evsel, bf, sizeof(bf)); |
275 | break; | 273 | break; |
276 | 274 | ||
277 | case PERF_TYPE_SOFTWARE: | 275 | case PERF_TYPE_SOFTWARE: |
278 | ret = perf_evsel__sw_name(evsel, bf, size); | 276 | perf_evsel__sw_name(evsel, bf, sizeof(bf)); |
279 | break; | 277 | break; |
280 | 278 | ||
281 | case PERF_TYPE_TRACEPOINT: | 279 | case PERF_TYPE_TRACEPOINT: |
282 | ret = perf_evsel__tracepoint_name(evsel, bf, size); | 280 | scnprintf(bf, sizeof(bf), "%s", "unknown tracepoint"); |
283 | break; | 281 | break; |
284 | 282 | ||
285 | default: | 283 | default: |
286 | ret = scnprintf(bf, size, "%s", "unknown attr type"); | 284 | scnprintf(bf, sizeof(bf), "%s", "unknown attr type"); |
287 | break; | 285 | break; |
288 | } | 286 | } |
289 | 287 | ||
290 | return ret; | 288 | evsel->name = strdup(bf); |
289 | |||
290 | return evsel->name ?: "unknown"; | ||
291 | } | 291 | } |
292 | 292 | ||
293 | void perf_evsel__config(struct perf_evsel *evsel, struct perf_record_opts *opts, | 293 | void perf_evsel__config(struct perf_evsel *evsel, struct perf_record_opts *opts, |