From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Huacai Chen <chenhc@lemote.com>,
John Crispin <john@phrozen.org>,
"Steven J. Hill" <Steven.Hill@imgtec.com>,
Aurelien Jarno <aurelien@aurel32.net>,
Fuxin Zhang <zhangfx@lemote.com>,
Zhangjin Wu <wuzhangjin@gmail.com>,
Ralf Baechle <ralf@linux-mips.org>,
linux-mips@linux-mips.org
Subject: [PATCH 3.4 04/22] MIPS: Hibernate: Flush TLB entries in swsusp_arch_resume()
Date: Sun, 11 May 2014 21:21:12 +0200 [thread overview]
Message-ID: <20140511192104.339770099@linuxfoundation.org> (raw)
In-Reply-To: <20140511192103.733723493@linuxfoundation.org>
3.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Huacai Chen <chenhc@lemote.com>
commit c14af233fbe279d0e561ecf84f1208b1bae087ef upstream.
The original MIPS hibernate code flushes cache and TLB entries in
swsusp_arch_resume(). But they are removed in Commit 44eeab67416711
(MIPS: Hibernation: Remove SMP TLB and cacheflushing code.). A cross-
CPU flush is surely unnecessary because all but the local CPU have
already been disabled. But a local flush (at least the TLB flush) is
needed. When we do hibernation on Loongson-3 with an E1000E NIC, it is
very easy to produce a kernel panic (kernel page fault, or unaligned
access). The root cause is E1000E driver use vzalloc_node() to allocate
pages, the stale TLB entries of the booting kernel will be misused by
the resumed target kernel.
Signed-off-by: Huacai Chen <chenhc@lemote.com>
Cc: John Crispin <john@phrozen.org>
Cc: Steven J. Hill <Steven.Hill@imgtec.com>
Cc: Aurelien Jarno <aurelien@aurel32.net>
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/6643/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/mips/power/hibernate.S | 1 +
1 file changed, 1 insertion(+)
--- a/arch/mips/power/hibernate.S
+++ b/arch/mips/power/hibernate.S
@@ -44,6 +44,7 @@ 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)
next prev parent reply other threads:[~2014-05-11 19:26 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-11 19:21 [PATCH 3.4 00/22] 3.4.90-stable review Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 01/22] drivers/tty/hvc: dont free hvc_console_setup after init Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 02/22] floppy: ignore kernel-only members in FDRAWCMD ioctl input Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 03/22] floppy: dont write kernel-only members to FDRAWCMD ioctl output Greg Kroah-Hartman
2014-05-11 19:21 ` Greg Kroah-Hartman [this message]
2014-05-11 19:21 ` [PATCH 3.4 05/22] virtio_balloon: dont softlockup on huge balloon changes Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 06/22] [SCSI] mpt2sas: Dont disable device twice at suspend Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 07/22] crypto: ghash-clmulni-intel - use C implementation for setkey() Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 08/22] framebuffer: fix cfb_copyarea Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 09/22] matroxfb: restore the registers M_ACCESS and M_PITCH Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 10/22] mach64: use unaligned access Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 11/22] mach64: fix cursor when character width is not a multiple of 8 pixels Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 12/22] b43: Fix machine check error due to improper access of B43_MMIO_PSM_PHY_HDR Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 13/22] libata/ahci: accommodate tag ordered controllers Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 14/22] locks: allow __break_lease to sleep even when break_time is 0 Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 15/22] rtlwifi: rtl8192cu: Fix too long disable of IRQs Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 16/22] rtlwifi: rtl8192se: " Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 17/22] gpio: mxs: Allow for recursive enable_irq_wake() call Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 18/22] tgafb: fix data copying Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 19/22] mtd: nuc900_nand: NULL dereference in nuc900_nand_enable() Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 20/22] mtd: sm_ftl: heap corruption in sm_create_sysfs_attributes() Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 21/22] Skip intel_crt_init for Dell XPS 8700 Greg Kroah-Hartman
2014-05-11 19:21 ` [PATCH 3.4 22/22] dm thin: fix dangling bio in process_deferred_bios error path Greg Kroah-Hartman
2014-05-11 22:49 ` [PATCH 3.4 00/22] 3.4.90-stable review Guenter Roeck
2014-05-12 21:54 ` Shuah Khan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140511192104.339770099@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=Steven.Hill@imgtec.com \
--cc=aurelien@aurel32.net \
--cc=chenhc@lemote.com \
--cc=john@phrozen.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=ralf@linux-mips.org \
--cc=stable@vger.kernel.org \
--cc=wuzhangjin@gmail.com \
--cc=zhangfx@lemote.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox