| From a95d069204e178f18476f5499abab0d0d9cbc32c Mon Sep 17 00:00:00 2001 |
| From: Huacai Chen <chenhc@lemote.com> |
| Date: Thu, 17 Mar 2016 20:37:10 +0800 |
| Subject: MIPS: Reserve nosave data for hibernation |
| |
| From: Huacai Chen <chenhc@lemote.com> |
| |
| commit a95d069204e178f18476f5499abab0d0d9cbc32c upstream. |
| |
| After commit 92923ca3aacef63c92d ("mm: meminit: only set page reserved |
| in the memblock region"), the MIPS hibernation is broken. Because pages |
| in nosave data section should be "reserved", but currently they aren't |
| set to "reserved" at initialization. This patch makes hibernation work |
| again. |
| |
| Signed-off-by: Huacai Chen <chenhc@lemote.com> |
| Cc: Aurelien Jarno <aurelien@aurel32.net> |
| Cc: Steven J . Hill <sjhill@realitydiluted.com> |
| Cc: Fuxin Zhang <zhangfx@lemote.com> |
| Cc: Zhangjin Wu <wuzhangjin@gmail.com> |
| Cc: linux-mips@linux-mips.org |
| Patchwork: https://patchwork.linux-mips.org/patch/12888/ |
| Signed-off-by: Ralf Baechle <ralf@linux-mips.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/mips/kernel/setup.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/arch/mips/kernel/setup.c |
| +++ b/arch/mips/kernel/setup.c |
| @@ -706,6 +706,9 @@ static void __init arch_mem_init(char ** |
| for_each_memblock(reserved, reg) |
| if (reg->size != 0) |
| reserve_bootmem(reg->base, reg->size, BOOTMEM_DEFAULT); |
| + |
| + reserve_bootmem_region(__pa_symbol(&__nosave_begin), |
| + __pa_symbol(&__nosave_end)); /* Reserve for hibernation */ |
| } |
| |
| static void __init resource_init(void) |