aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/mm/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/mm/init.c')
-rw-r--r--arch/s390/mm/init.c30
1 files changed, 3 insertions, 27 deletions
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c
index c3c07d3505ba..c722400c7697 100644
--- a/arch/s390/mm/init.c
+++ b/arch/s390/mm/init.c
@@ -48,37 +48,13 @@ EXPORT_SYMBOL(zero_page_mask);
48 48
49static void __init setup_zero_pages(void) 49static void __init setup_zero_pages(void)
50{ 50{
51 struct cpuid cpu_id;
52 unsigned int order; 51 unsigned int order;
53 struct page *page; 52 struct page *page;
54 int i; 53 int i;
55 54
56 get_cpu_id(&cpu_id); 55 /* Latest machines require a mapping granularity of 512KB */
57 switch (cpu_id.machine) { 56 order = 7;
58 case 0x9672: /* g5 */ 57
59 case 0x2064: /* z900 */
60 case 0x2066: /* z900 */
61 case 0x2084: /* z990 */
62 case 0x2086: /* z990 */
63 case 0x2094: /* z9-109 */
64 case 0x2096: /* z9-109 */
65 order = 0;
66 break;
67 case 0x2097: /* z10 */
68 case 0x2098: /* z10 */
69 case 0x2817: /* z196 */
70 case 0x2818: /* z196 */
71 order = 2;
72 break;
73 case 0x2827: /* zEC12 */
74 case 0x2828: /* zEC12 */
75 order = 5;
76 break;
77 case 0x2964: /* z13 */
78 default:
79 order = 7;
80 break;
81 }
82 /* Limit number of empty zero pages for small memory sizes */ 58 /* Limit number of empty zero pages for small memory sizes */
83 while (order > 2 && (totalram_pages >> 10) < (1UL << order)) 59 while (order > 2 && (totalram_pages >> 10) < (1UL << order))
84 order--; 60 order--;