xref: /linux/arch/s390/mm/page-states.c (revision 0ea5c948cb64bab5bc7a5516774eb8536f05aa0d)
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Copyright IBM Corp. 2008
4  *
5  * Guest page hinting for unused pages.
6  *
7  * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
8  */
9 
10 #include <linux/mm.h>
11 #include <asm/page-states.h>
12 #include <asm/sections.h>
13 #include <asm/page.h>
14 
15 int __bootdata_preserved(cmma_flag);
16 
arch_free_page(struct page * page,int order)17 void arch_free_page(struct page *page, int order)
18 {
19 	if (!cmma_flag)
20 		return;
21 	__set_page_unused(page_to_virt(page), 1UL << order);
22 }
23 
arch_alloc_page(struct page * page,int order)24 void arch_alloc_page(struct page *page, int order)
25 {
26 	if (!cmma_flag)
27 		return;
28 	if (cmma_flag < 2)
29 		__set_page_stable_dat(page_to_virt(page), 1UL << order);
30 	else
31 		__set_page_stable_nodat(page_to_virt(page), 1UL << order);
32 }
33