hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/s390/mm/page-states.c
....@@ -21,17 +21,11 @@
2121
2222 static int __init cmma(char *str)
2323 {
24
- char *parm;
24
+ bool enabled;
2525
26
- parm = strstrip(str);
27
- if (strcmp(parm, "yes") == 0 || strcmp(parm, "on") == 0) {
28
- cmma_flag = 1;
29
- return 1;
30
- }
31
- cmma_flag = 0;
32
- if (strcmp(parm, "no") == 0 || strcmp(parm, "off") == 0)
33
- return 1;
34
- return 0;
26
+ if (!kstrtobool(str, &enabled))
27
+ cmma_flag = enabled;
28
+ return 1;
3529 }
3630 __setup("cmma=", cmma);
3731
....@@ -189,9 +183,9 @@
189183
190184 void __init cmma_init_nodat(void)
191185 {
192
- struct memblock_region *reg;
193186 struct page *page;
194187 unsigned long start, end, ix;
188
+ int i;
195189
196190 if (cmma_flag < 2)
197191 return;
....@@ -199,9 +193,7 @@
199193 mark_kernel_pgd();
200194
201195 /* Set all kernel pages not used for page tables to stable/no-dat */
202
- for_each_memblock(memory, reg) {
203
- start = memblock_region_memory_base_pfn(reg);
204
- end = memblock_region_memory_end_pfn(reg);
196
+ for_each_mem_pfn_range(i, MAX_NUMNODES, &start, &end, NULL) {
205197 page = pfn_to_page(start);
206198 for (ix = start; ix < end; ix++, page++) {
207199 if (__test_and_clear_bit(PG_arch_1, &page->flags))