diff options
Diffstat (limited to 'arch/s390/mm/page-states.c')
-rw-r--r-- | arch/s390/mm/page-states.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/s390/mm/page-states.c b/arch/s390/mm/page-states.c index a90d45e9dfb0..27c50f4d90cb 100644 --- a/arch/s390/mm/page-states.c +++ b/arch/s390/mm/page-states.c | |||
@@ -12,6 +12,8 @@ | |||
12 | #include <linux/mm.h> | 12 | #include <linux/mm.h> |
13 | #include <linux/gfp.h> | 13 | #include <linux/gfp.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <asm/setup.h> | ||
16 | #include <asm/ipl.h> | ||
15 | 17 | ||
16 | #define ESSA_SET_STABLE 1 | 18 | #define ESSA_SET_STABLE 1 |
17 | #define ESSA_SET_UNUSED 2 | 19 | #define ESSA_SET_UNUSED 2 |
@@ -41,6 +43,14 @@ void __init cmma_init(void) | |||
41 | 43 | ||
42 | if (!cmma_flag) | 44 | if (!cmma_flag) |
43 | return; | 45 | return; |
46 | /* | ||
47 | * Disable CMM for dump, otherwise the tprot based memory | ||
48 | * detection can fail because of unstable pages. | ||
49 | */ | ||
50 | if (OLDMEM_BASE || ipl_info.type == IPL_TYPE_FCP_DUMP) { | ||
51 | cmma_flag = 0; | ||
52 | return; | ||
53 | } | ||
44 | asm volatile( | 54 | asm volatile( |
45 | " .insn rrf,0xb9ab0000,%1,%1,0,0\n" | 55 | " .insn rrf,0xb9ab0000,%1,%1,0,0\n" |
46 | "0: la %0,0\n" | 56 | "0: la %0,0\n" |