diff options
Diffstat (limited to 'arch/s390/mm/init.c')
-rw-r--r-- | arch/s390/mm/init.c | 30 |
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 | ||
49 | static void __init setup_zero_pages(void) | 49 | static 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--; |