Commit d3aaa3af authored by Huacai Chen's avatar Huacai Chen Committed by Greg Kroah-Hartman

MIPS: Hibernate: flush TLB entries earlier

commit a843d00d upstream.

We found that TLB mismatch not only happens after kernel resume, but
also happens during snapshot restore. So move it to the beginning of
swsusp_arch_suspend().
Signed-off-by: default avatarHuacai Chen <chenhc@lemote.com>
Cc: Steven J. Hill <Steven.Hill@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: Fuxin Zhang <zhangfx@lemote.com>
Cc: Zhangjin Wu <wuzhangjin@gmail.com>
Patchwork: https://patchwork.linux-mips.org/patch/9621/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 0627a78c
...@@ -30,6 +30,8 @@ LEAF(swsusp_arch_suspend) ...@@ -30,6 +30,8 @@ LEAF(swsusp_arch_suspend)
END(swsusp_arch_suspend) END(swsusp_arch_suspend)
LEAF(swsusp_arch_resume) LEAF(swsusp_arch_resume)
/* Avoid TLB mismatch during and after kernel resume */
jal local_flush_tlb_all
PTR_L t0, restore_pblist PTR_L t0, restore_pblist
0: 0:
PTR_L t1, PBE_ADDRESS(t0) /* source */ PTR_L t1, PBE_ADDRESS(t0) /* source */
...@@ -43,7 +45,6 @@ LEAF(swsusp_arch_resume) ...@@ -43,7 +45,6 @@ LEAF(swsusp_arch_resume)
bne t1, t3, 1b bne t1, t3, 1b
PTR_L t0, PBE_NEXT(t0) PTR_L t0, PBE_NEXT(t0)
bnez t0, 0b bnez t0, 0b
jal local_flush_tlb_all /* Avoid TLB mismatch after kernel resume */
PTR_LA t0, saved_regs PTR_LA t0, saved_regs
PTR_L ra, PT_R31(t0) PTR_L ra, PT_R31(t0)
PTR_L sp, PT_R29(t0) PTR_L sp, PT_R29(t0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment