x86, AMD: Fix stale cpuid4_info shared_map data in shared_cpu_map cpumasks
commit21dc3d5c88916458f26002e6090ebc060c646dc8
authorPrarit Bhargava <prarit@redhat.com>
Wed, 9 Dec 2009 18:36:45 +0000 (9 13:36 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 12 May 2010 21:57:06 +0000 (12 14:57 -0700)
tree569bf42f3747acb2ba2f4b06fac0e9e9bd117454
parent4515b172cd9fc6bd7c9ee2264ed650411fcd118e
x86, AMD: Fix stale cpuid4_info shared_map data in shared_cpu_map cpumasks

commit ebb682f522411abbe358059a256a8672ec0bd55b upstream.

The per_cpu cpuid4_info shared_map can contain stale data when CPUs are added
and removed.

The stale data can lead to a NULL pointer derefernce panic on a remove of a
CPU that has had siblings previously removed.

This patch resolves the panic by verifying a cpu is actually online before
adding it to the shared_cpu_map, only examining cpus that are part of
the same lower level cache, and by updating other siblings lowest level cache
maps when a cpu is added.

Signed-off-by: Prarit Bhargava <prarit@redhat.com>
LKML-Reference: <20091209183336.17855.98708.sendpatchset@prarit.bos.redhat.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/kernel/cpu/intel_cacheinfo.c