On Tue, Jul 29, 2014 at 02:54:40PM +0800, Huacai Chen wrote: > In commit 2c8c53e28f1 (MIPS: Optimize TLB handlers for Octeon CPUs) > build_r4000_tlb_refill_handler() is modified. But it doesn't compatible > with the original code in HUGETLB case. Because there is a copy & paste > error and one line of code is missing. It is very easy to produce a bug > with LTP's hugemmap05 test. > > Signed-off-by: Huacai Chen <chenhc@xxxxxxxxxx> > Signed-off-by: Binbin Zhou <zhoubb@xxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> > --- > arch/mips/mm/tlbex.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c > index e80e10b..343fe0f 100644 > --- a/arch/mips/mm/tlbex.c > +++ b/arch/mips/mm/tlbex.c > @@ -1299,6 +1299,7 @@ static void build_r4000_tlb_refill_handler(void) > } > #ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT > uasm_l_tlb_huge_update(&l, p); > + UASM_i_LW(&p, K0, 0, K1); > build_huge_update_entries(&p, htlb_info.huge_pte, K1); > build_huge_tlb_write_entry(&p, &l, &r, K0, tlb_random, > htlb_info.restore_scratch); Thanks for this patch. It also fixes TRANSPARENT_HUGEPAGE=y, which we had to disable on Loongson 3 as it was causing kernel crashes. This option is quite interesting for most MIPS systems, which are using a software driven TLB. Tested-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> Reviewed-by: Aurelien Jarno <aurelien@xxxxxxxxxxx> -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@xxxxxxxxxxx http://www.aurel32.net