From: Paul Mundt <lethal@linux-sh.org>
Date: Fri, 19 Jun 2009 06:37:11 +0000 (+0900)
Subject: sh: Use local TLB flush in set_pte_phys().
X-Git-Tag: firefly_0821_release~13620^2~4
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=997d0030934f7722d81e5b1cdd7af85ac7ed960b;p=firefly-linux-kernel-4.4.55.git

sh: Use local TLB flush in set_pte_phys().

set_pte_phys() presently uses the global flush_tlb_one(), which locks on
SMP trying to do the IPI. As we have not even initialized the other CPUs
at this point, switch to the local_ variant so the flush happens on the
boot CPU.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
---

diff --git a/arch/sh/mm/init.c b/arch/sh/mm/init.c
index ee8e6bbe882c..d1be04204219 100644
--- a/arch/sh/mm/init.c
+++ b/arch/sh/mm/init.c
@@ -70,7 +70,7 @@ static void set_pte_phys(unsigned long addr, unsigned long phys, pgprot_t prot)
 	}
 
 	set_pte(pte, pfn_pte(phys >> PAGE_SHIFT, prot));
-	flush_tlb_one(get_asid(), addr);
+	local_flush_tlb_one(get_asid(), addr);
 }
 
 /*