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

x86: cache_info: Remove bogus free of amd_l3_cache data

free_cache_attributes() kfree's:

per_cpu(ici_cpuid4_info, cpu)->l3

which is a pointer to memory which was allocated as a block in
amd_init_l3_cache(). l3 of a particular cpu points to a part of this
memory blob. The part and the rest of the blob are still referenced by
other cpus.

As far as I can tell from the git history this is a leftover from the
conversion from per cpu to node data with commit ba06edb63(x86,
cacheinfo: Make L3 cache info per node) and the following commit
f658bcfb2(x86, cacheinfo: Cleanup L3 cache index disable support)

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Hans Rosenfeld <hans.rosenfeld@amd.com>
Cc: Borislav Petkov <borislav.petkov@amd.com>
Cc: Andreas Herrmann <andreas.herrmann3@amd.com>
Cc: Mike Travis <travis@sgi.com>
Link: http://lkml.kernel.org/r/20110723212626.550539989@linutronix.de
Signed-off-by: Ingo Molnar <mingo@elte.hu>

authored by

Thomas Gleixner and committed by
Ingo Molnar
05b217b0 5cdd174f

-1
-1
arch/x86/kernel/cpu/intel_cacheinfo.c
··· 820 820 for (i = 0; i < num_cache_leaves; i++) 821 821 cache_remove_shared_cpu_map(cpu, i); 822 822 823 - kfree(per_cpu(ici_cpuid4_info, cpu)->l3); 824 823 kfree(per_cpu(ici_cpuid4_info, cpu)); 825 824 per_cpu(ici_cpuid4_info, cpu) = NULL; 826 825 }