[IA64] eliminate race condition in smp_flush_tlb_mm
authorDimitri Sivanich <sivanich@sgi.com>
Tue, 28 Dec 2010 19:34:42 +0000 (13:34 -0600)
committerTony Luck <tony.luck@intel.com>
Tue, 28 Dec 2010 22:06:21 +0000 (14:06 -0800)
commit75c1c91cb92806f960fcd6e53d2a0c21f343081c
treef87fd2f7cf75b9d2b1180452120f8dd852d2c9b6
parent90a8a73c06cc32b609a880d48449d7083327e11a
[IA64] eliminate race condition in smp_flush_tlb_mm

A race condition exists within smp_call_function_many() when called from
smp_flush_tlb_mm().  On rare occasions the cpu_vm_mask can be cleared
while smp_call_function_many is executing, occasionally resulting in a
hung process.

Make a copy of the mask prior to calling smp_call_function_many().

Signed-off-by: Dimitri Sivanich <sivanich@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
arch/ia64/kernel/smp.c