arch, mm: restore dependency of __kernel_map_pages() on DEBUG_PAGEALLOC
[linux-2.6-microblaze.git] / arch / arm64 / mm / pageattr.c
index 1b94f5b..4393255 100644 (file)
@@ -155,7 +155,7 @@ int set_direct_map_invalid_noflush(struct page *page)
                .clear_mask = __pgprot(PTE_VALID),
        };
 
-       if (!rodata_full)
+       if (!debug_pagealloc_enabled() && !rodata_full)
                return 0;
 
        return apply_to_page_range(&init_mm,
@@ -170,7 +170,7 @@ int set_direct_map_default_noflush(struct page *page)
                .clear_mask = __pgprot(PTE_RDONLY),
        };
 
-       if (!rodata_full)
+       if (!debug_pagealloc_enabled() && !rodata_full)
                return 0;
 
        return apply_to_page_range(&init_mm,
@@ -178,6 +178,7 @@ int set_direct_map_default_noflush(struct page *page)
                                   PAGE_SIZE, change_page_range, &data);
 }
 
+#ifdef CONFIG_DEBUG_PAGEALLOC
 void __kernel_map_pages(struct page *page, int numpages, int enable)
 {
        if (!debug_pagealloc_enabled() && !rodata_full)
@@ -186,6 +187,7 @@ void __kernel_map_pages(struct page *page, int numpages, int enable)
        set_memory_valid((unsigned long)page_address(page), numpages, enable);
 }
 
+#ifdef CONFIG_HIBERNATION
 /*
  * This function is used to determine if a linear map page has been marked as
  * not-valid. Walk the page table and check the PTE_VALID bit. This is based
@@ -232,3 +234,5 @@ bool kernel_page_present(struct page *page)
        ptep = pte_offset_kernel(pmdp, addr);
        return pte_valid(READ_ONCE(*ptep));
 }
+#endif /* CONFIG_HIBERNATION */
+#endif /* CONFIG_DEBUG_PAGEALLOC */