]> 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>
Thu, 25 Oct 2012 01:14:40 +0000 (12:14 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Wed, 31 Oct 2012 05:49:41 +0000 (16:49 +1100)
commitb271ea1b03a0342a7989187e9f8c5461f370a488
treeebe52bcd964b30e19396492fd4d216fdc452d74d
parent3eafbd6f608bcde7459bd31021bc6602ea337976
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