OSDN Git Service

perf auxtrace: Fix queue resize
authorAdrian Hunter <adrian.hunter@intel.com>
Tue, 14 Aug 2018 08:46:08 +0000 (11:46 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 9 Sep 2018 18:04:36 +0000 (20:04 +0200)
commit 99cbbe56eb8bede625f410ab62ba34673ffa7d21 upstream.

When the number of queues grows beyond 32, the array of queues is
resized but not all members were being copied. Fix by also copying
'tid', 'cpu' and 'set'.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: stable@vger.kernel.org
Fixes: e502789302a6e ("perf auxtrace: Add helpers for queuing AUX area tracing data")
Link: http://lkml.kernel.org/r/20180814084608.6563-1-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/perf/util/auxtrace.c

index 7f10430..58426e7 100644 (file)
@@ -186,6 +186,9 @@ static int auxtrace_queues__grow(struct auxtrace_queues *queues,
        for (i = 0; i < queues->nr_queues; i++) {
                list_splice_tail(&queues->queue_array[i].head,
                                 &queue_array[i].head);
+               queue_array[i].tid = queues->queue_array[i].tid;
+               queue_array[i].cpu = queues->queue_array[i].cpu;
+               queue_array[i].set = queues->queue_array[i].set;
                queue_array[i].priv = queues->queue_array[i].priv;
        }