Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf auxtrace: Make auxtrace_queues__add_buffer() return buffer_ptr

In preparation for supporting AUX area sampling buffers,
auxtrace_queues__add_buffer() needs to be more generic. To that end, make
it return buffer_ptr instead of the caller.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lkml.kernel.org/r/1520327598-1317-6-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Adrian Hunter and committed by
Arnaldo Carvalho de Melo
4c454843 a356a597

+15 -8
+15 -8
tools/perf/util/auxtrace.c
··· 305 305 static int auxtrace_queues__add_buffer(struct auxtrace_queues *queues, 306 306 struct perf_session *session, 307 307 unsigned int idx, 308 - struct auxtrace_buffer *buffer) 308 + struct auxtrace_buffer *buffer, 309 + struct auxtrace_buffer **buffer_ptr) 309 310 { 311 + int err; 312 + 310 313 if (session->one_mmap) { 311 314 buffer->data = buffer->data_offset - session->one_mmap_offset + 312 315 session->one_mmap_addr; ··· 320 317 buffer->data_needs_freeing = true; 321 318 } else if (BITS_PER_LONG == 32 && 322 319 buffer->size > BUFFER_LIMIT_FOR_32_BIT) { 323 - int err; 324 - 325 320 err = auxtrace_queues__split_buffer(queues, idx, buffer); 326 321 if (err) 327 322 return err; 328 323 } 329 324 330 - return auxtrace_queues__queue_buffer(queues, idx, buffer); 325 + err = auxtrace_queues__queue_buffer(queues, idx, buffer); 326 + if (err) 327 + return err; 328 + 329 + /* FIXME: Doesn't work for split buffer */ 330 + if (buffer_ptr) 331 + *buffer_ptr = buffer; 332 + 333 + return 0; 331 334 } 332 335 333 336 static bool filter_cpu(struct perf_session *session, int cpu) ··· 368 359 buffer->size = event->auxtrace.size; 369 360 idx = event->auxtrace.idx; 370 361 371 - err = auxtrace_queues__add_buffer(queues, session, idx, buffer); 362 + err = auxtrace_queues__add_buffer(queues, session, idx, buffer, 363 + buffer_ptr); 372 364 if (err) 373 365 goto out_err; 374 - 375 - if (buffer_ptr) 376 - *buffer_ptr = buffer; 377 366 378 367 return 0; 379 368