* [PATCH 1/2] MIPS: Hibernate: flush TLB entries earlier
@ 2014-12-22 2:28 Huacai Chen
2014-12-22 2:28 ` [PATCH 2/2] MIPS: Hibernate: Restructure files and functions Huacai Chen
2014-12-22 2:31 ` [PATCH 1/2] MIPS: Hibernate: flush TLB entries earlier Huacai Chen
0 siblings, 2 replies; 4+ messages in thread
From: Huacai Chen @ 2014-12-22 2:28 UTC (permalink / raw)
To: Giuseppe Cavallaro
Cc: Srinivas Kandagatla, David S. Miller, netdev, Huacai Chen, stable
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().
Cc: <stable@vger.kernel.org>
Signed-off-by: Huacai Chen <chenhc@lemote.com>
---
arch/mips/power/hibernate.S | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/arch/mips/power/hibernate.S b/arch/mips/power/hibernate.S
index 32a7c82..e7567c8 100644
--- a/arch/mips/power/hibernate.S
+++ b/arch/mips/power/hibernate.S
@@ -30,6 +30,8 @@ LEAF(swsusp_arch_suspend)
END(swsusp_arch_suspend)
LEAF(swsusp_arch_resume)
+ /* Avoid TLB mismatch during and after kernel resume */
+ jal local_flush_tlb_all
PTR_L t0, restore_pblist
0:
PTR_L t1, PBE_ADDRESS(t0) /* source */
@@ -43,7 +45,6 @@ LEAF(swsusp_arch_resume)
bne t1, t3, 1b
PTR_L t0, PBE_NEXT(t0)
bnez t0, 0b
- jal local_flush_tlb_all /* Avoid TLB mismatch after kernel resume */
PTR_LA t0, saved_regs
PTR_L ra, PT_R31(t0)
PTR_L sp, PT_R29(t0)
--
1.7.7.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] MIPS: Hibernate: Restructure files and functions
2014-12-22 2:28 [PATCH 1/2] MIPS: Hibernate: flush TLB entries earlier Huacai Chen
@ 2014-12-22 2:28 ` Huacai Chen
2014-12-22 2:32 ` Huacai Chen
2014-12-22 2:31 ` [PATCH 1/2] MIPS: Hibernate: flush TLB entries earlier Huacai Chen
1 sibling, 1 reply; 4+ messages in thread
From: Huacai Chen @ 2014-12-22 2:28 UTC (permalink / raw)
To: Giuseppe Cavallaro
Cc: Srinivas Kandagatla, David S. Miller, netdev, Huacai Chen
This patch has no functional changes, it just to keep the assembler
code to a minimum. Files and functions naming is borrowed from X86.
Signed-off-by: Huacai Chen <chenhc@lemote.com>
---
arch/mips/power/Makefile | 2 +-
arch/mips/power/hibernate.c | 10 ++++++++++
arch/mips/power/{hibernate.S => hibernate_asm.S} | 6 ++----
3 files changed, 13 insertions(+), 5 deletions(-)
create mode 100644 arch/mips/power/hibernate.c
rename arch/mips/power/{hibernate.S => hibernate_asm.S} (90%)
diff --git a/arch/mips/power/Makefile b/arch/mips/power/Makefile
index 73d56b8..70bd788 100644
--- a/arch/mips/power/Makefile
+++ b/arch/mips/power/Makefile
@@ -1 +1 @@
-obj-$(CONFIG_HIBERNATION) += cpu.o hibernate.o
+obj-$(CONFIG_HIBERNATION) += cpu.o hibernate.o hibernate_asm.o
diff --git a/arch/mips/power/hibernate.c b/arch/mips/power/hibernate.c
new file mode 100644
index 0000000..19a9af6
--- /dev/null
+++ b/arch/mips/power/hibernate.c
@@ -0,0 +1,10 @@
+#include <asm/tlbflush.h>
+
+extern int restore_image(void);
+
+int swsusp_arch_resume(void)
+{
+ /* Avoid TLB mismatch during and after kernel resume */
+ local_flush_tlb_all();
+ return restore_image();
+}
diff --git a/arch/mips/power/hibernate.S b/arch/mips/power/hibernate_asm.S
similarity index 90%
rename from arch/mips/power/hibernate.S
rename to arch/mips/power/hibernate_asm.S
index e7567c8..b1fab95 100644
--- a/arch/mips/power/hibernate.S
+++ b/arch/mips/power/hibernate_asm.S
@@ -29,9 +29,7 @@ LEAF(swsusp_arch_suspend)
j swsusp_save
END(swsusp_arch_suspend)
-LEAF(swsusp_arch_resume)
- /* Avoid TLB mismatch during and after kernel resume */
- jal local_flush_tlb_all
+LEAF(restore_image)
PTR_L t0, restore_pblist
0:
PTR_L t1, PBE_ADDRESS(t0) /* source */
@@ -60,4 +58,4 @@ LEAF(swsusp_arch_resume)
PTR_L s7, PT_R23(t0)
PTR_LI v0, 0x0
jr ra
-END(swsusp_arch_resume)
+END(restore_image)
--
1.7.7.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] MIPS: Hibernate: flush TLB entries earlier
2014-12-22 2:28 [PATCH 1/2] MIPS: Hibernate: flush TLB entries earlier Huacai Chen
2014-12-22 2:28 ` [PATCH 2/2] MIPS: Hibernate: Restructure files and functions Huacai Chen
@ 2014-12-22 2:31 ` Huacai Chen
1 sibling, 0 replies; 4+ messages in thread
From: Huacai Chen @ 2014-12-22 2:31 UTC (permalink / raw)
To: Giuseppe Cavallaro
Cc: Srinivas Kandagatla, David S. Miller, netdev, Huacai Chen, stable
Sorry, send to a wrong place...
On Mon, Dec 22, 2014 at 10:28 AM, Huacai Chen <chenhc@lemote.com> wrote:
> 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().
>
> Cc: <stable@vger.kernel.org>
> Signed-off-by: Huacai Chen <chenhc@lemote.com>
> ---
> arch/mips/power/hibernate.S | 3 ++-
> 1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/arch/mips/power/hibernate.S b/arch/mips/power/hibernate.S
> index 32a7c82..e7567c8 100644
> --- a/arch/mips/power/hibernate.S
> +++ b/arch/mips/power/hibernate.S
> @@ -30,6 +30,8 @@ LEAF(swsusp_arch_suspend)
> END(swsusp_arch_suspend)
>
> LEAF(swsusp_arch_resume)
> + /* Avoid TLB mismatch during and after kernel resume */
> + jal local_flush_tlb_all
> PTR_L t0, restore_pblist
> 0:
> PTR_L t1, PBE_ADDRESS(t0) /* source */
> @@ -43,7 +45,6 @@ LEAF(swsusp_arch_resume)
> bne t1, t3, 1b
> PTR_L t0, PBE_NEXT(t0)
> bnez t0, 0b
> - jal local_flush_tlb_all /* Avoid TLB mismatch after kernel resume */
> PTR_LA t0, saved_regs
> PTR_L ra, PT_R31(t0)
> PTR_L sp, PT_R29(t0)
> --
> 1.7.7.3
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] MIPS: Hibernate: Restructure files and functions
2014-12-22 2:28 ` [PATCH 2/2] MIPS: Hibernate: Restructure files and functions Huacai Chen
@ 2014-12-22 2:32 ` Huacai Chen
0 siblings, 0 replies; 4+ messages in thread
From: Huacai Chen @ 2014-12-22 2:32 UTC (permalink / raw)
To: Giuseppe Cavallaro
Cc: Srinivas Kandagatla, David S. Miller, netdev, Huacai Chen
Sorry, send to a wrong place...
On Mon, Dec 22, 2014 at 10:28 AM, Huacai Chen <chenhc@lemote.com> wrote:
> This patch has no functional changes, it just to keep the assembler
> code to a minimum. Files and functions naming is borrowed from X86.
>
> Signed-off-by: Huacai Chen <chenhc@lemote.com>
> ---
> arch/mips/power/Makefile | 2 +-
> arch/mips/power/hibernate.c | 10 ++++++++++
> arch/mips/power/{hibernate.S => hibernate_asm.S} | 6 ++----
> 3 files changed, 13 insertions(+), 5 deletions(-)
> create mode 100644 arch/mips/power/hibernate.c
> rename arch/mips/power/{hibernate.S => hibernate_asm.S} (90%)
>
> diff --git a/arch/mips/power/Makefile b/arch/mips/power/Makefile
> index 73d56b8..70bd788 100644
> --- a/arch/mips/power/Makefile
> +++ b/arch/mips/power/Makefile
> @@ -1 +1 @@
> -obj-$(CONFIG_HIBERNATION) += cpu.o hibernate.o
> +obj-$(CONFIG_HIBERNATION) += cpu.o hibernate.o hibernate_asm.o
> diff --git a/arch/mips/power/hibernate.c b/arch/mips/power/hibernate.c
> new file mode 100644
> index 0000000..19a9af6
> --- /dev/null
> +++ b/arch/mips/power/hibernate.c
> @@ -0,0 +1,10 @@
> +#include <asm/tlbflush.h>
> +
> +extern int restore_image(void);
> +
> +int swsusp_arch_resume(void)
> +{
> + /* Avoid TLB mismatch during and after kernel resume */
> + local_flush_tlb_all();
> + return restore_image();
> +}
> diff --git a/arch/mips/power/hibernate.S b/arch/mips/power/hibernate_asm.S
> similarity index 90%
> rename from arch/mips/power/hibernate.S
> rename to arch/mips/power/hibernate_asm.S
> index e7567c8..b1fab95 100644
> --- a/arch/mips/power/hibernate.S
> +++ b/arch/mips/power/hibernate_asm.S
> @@ -29,9 +29,7 @@ LEAF(swsusp_arch_suspend)
> j swsusp_save
> END(swsusp_arch_suspend)
>
> -LEAF(swsusp_arch_resume)
> - /* Avoid TLB mismatch during and after kernel resume */
> - jal local_flush_tlb_all
> +LEAF(restore_image)
> PTR_L t0, restore_pblist
> 0:
> PTR_L t1, PBE_ADDRESS(t0) /* source */
> @@ -60,4 +58,4 @@ LEAF(swsusp_arch_resume)
> PTR_L s7, PT_R23(t0)
> PTR_LI v0, 0x0
> jr ra
> -END(swsusp_arch_resume)
> +END(restore_image)
> --
> 1.7.7.3
>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-12-22 2:32 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-22 2:28 [PATCH 1/2] MIPS: Hibernate: flush TLB entries earlier Huacai Chen
2014-12-22 2:28 ` [PATCH 2/2] MIPS: Hibernate: Restructure files and functions Huacai Chen
2014-12-22 2:32 ` Huacai Chen
2014-12-22 2:31 ` [PATCH 1/2] MIPS: Hibernate: flush TLB entries earlier Huacai Chen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).