From 036213a6436faad95e4aecda802da06721a7b209 Mon Sep 17 00:00:00 2001 From: Shaohua Li Date: Mon, 17 Jan 2011 10:52:10 +0800 Subject: [PATCH] --- yaml --- r: 234807 b: refs/heads/master c: 7064d865af804b9b841e7b9a3e9b653e40c3e5ca h: refs/heads/master i: 234805: 26978cbd1b4f0b1d16330bbcd05b164d12bcbfb9 234803: a08bab3924b7a9c428fa3de189b080635b299eae 234799: 333801861f28a2c63215d9de8ec5435f833691f7 v: v3 --- [refs] | 2 +- trunk/arch/x86/mm/tlb.c | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 916c1cfad031..99d6a55b7d85 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 70e4a369733a21e3d16b059a6ccdad22a344bf57 +refs/heads/master: 7064d865af804b9b841e7b9a3e9b653e40c3e5ca diff --git a/trunk/arch/x86/mm/tlb.c b/trunk/arch/x86/mm/tlb.c index 6acc724d5d8f..55272d7c3b0b 100644 --- a/trunk/arch/x86/mm/tlb.c +++ b/trunk/arch/x86/mm/tlb.c @@ -179,12 +179,8 @@ static void flush_tlb_others_ipi(const struct cpumask *cpumask, sender = this_cpu_read(tlb_vector_offset); f = &flush_state[sender]; - /* - * Could avoid this lock when - * num_online_cpus() <= NUM_INVALIDATE_TLB_VECTORS, but it is - * probably not worth checking this for a cache-hot lock. - */ - raw_spin_lock(&f->tlbstate_lock); + if (nr_cpu_ids > NUM_INVALIDATE_TLB_VECTORS) + raw_spin_lock(&f->tlbstate_lock); f->flush_mm = mm; f->flush_va = va; @@ -202,7 +198,8 @@ static void flush_tlb_others_ipi(const struct cpumask *cpumask, f->flush_mm = NULL; f->flush_va = 0; - raw_spin_unlock(&f->tlbstate_lock); + if (nr_cpu_ids > NUM_INVALIDATE_TLB_VECTORS) + raw_spin_unlock(&f->tlbstate_lock); } void native_flush_tlb_others(const struct cpumask *cpumask,