]> git.karo-electronics.de Git - karo-tx-linux.git/commit
arch/x86/platform/uv: fix incorrect tlb flush all issue
authorAlex Shi <alex.shi@intel.com>
Fri, 12 Oct 2012 04:22:49 +0000 (15:22 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 17 Oct 2012 02:06:01 +0000 (13:06 +1100)
commitbca030947d42c82148e7918336d36e962b4621c9
treec831da45cb85a2299bb89e1ceb3fe22f633e22f2
parent29b3964729045404c0b72fbac0ee02759a4c225d
arch/x86/platform/uv: fix incorrect tlb flush all issue

The flush tlb optimization code has logical issue on UV platform.  It
doesn't flush the full range at all, since it simply ignores its 'end'
parameter (and hence also the "all" indicator) in uv_flush_tlb_others()
function.

Cliff's notes:

: I tested the patch on a UV.  It has the effect of either clearing 1 or all
: TLBs in a cpu.  I added some debugging to test for the cases when clearing
: all TLBs is overkill, and in practice it happens very seldom.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Alex Shi <alex.shi@intel.com>
Signed-off-by: Cliff Wickman <cpw@sgi.com>
Tested-by: Cliff Wickman <cpw@sgi.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
arch/x86/include/asm/uv/uv.h
arch/x86/platform/uv/tlb_uv.c