From c499bf388206580d6411010d3d45dafff605f115 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Tue, 6 Sep 2005 08:51:15 +0200 Subject: [PATCH] [PATCH] Fix per_cpu_info->cpu setting Not all traces are from CPU 0! Noticed by Nathan. --- blkparse.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/blkparse.c b/blkparse.c index c4c05a5..26dfdb1 100644 --- a/blkparse.c +++ b/blkparse.c @@ -113,10 +113,18 @@ static void resize_cpu_info(int cpuid) static struct per_cpu_info *get_cpu_info(int cpu) { + struct per_cpu_info *pci; + if (cpu >= max_cpus) resize_cpu_info(cpu); - return &per_cpu_info[cpu]; + /* + * ->cpu might already be set, but just set it unconditionally + */ + pci = &per_cpu_info[cpu]; + pci->cpu = cpu; + + return pci; } static inline void check_time(struct blk_io_trace *bit) @@ -576,7 +584,6 @@ static int do_file(void) void *tb; pci = get_cpu_info(i); - pci->cpu = i; pci->ofp = NULL; snprintf(pci->fname, sizeof(pci->fname)-1,"%s_out.%d", dev, i); -- 2.25.1