From: Joonsoo Kim <[email protected]>

We can disable debug_pagealloc processing even if the code is compiled
with CONFIG_DEBUG_PAGEALLOC. This patch changes the code to query
whether it is enabled or not in runtime.

v2: update comment, per David.
adjust comment to use 80 cols, per Andrew.

Reviewed-by: Christian Borntraeger <[email protected]>
Acked-by: David Rientjes <[email protected]>
Signed-off-by: Joonsoo Kim <[email protected]>
---
 mm/vmalloc.c | 25 ++++++++++++-------------
 1 file changed, 12 insertions(+), 13 deletions(-)

diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index fb42a5b..d4b2e34 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -531,22 +531,21 @@ static void unmap_vmap_area(struct vmap_area *va)
 static void vmap_debug_free_range(unsigned long start, unsigned long end)
 {
        /*
-        * Unmap page tables and force a TLB flush immediately if
-        * CONFIG_DEBUG_PAGEALLOC is set. This catches use after free
-        * bugs similarly to those in linear kernel virtual address
-        * space after a page has been freed.
+        * Unmap page tables and force a TLB flush immediately if pagealloc
+        * debugging is enabled.  This catches use after free bugs similarly to
+        * those in linear kernel virtual address space after a page has been
+        * freed.
         *
-        * All the lazy freeing logic is still retained, in order to
-        * minimise intrusiveness of this debugging feature.
+        * All the lazy freeing logic is still retained, in order to minimise
+        * intrusiveness of this debugging feature.
         *
-        * This is going to be *slow* (linear kernel virtual address
-        * debugging doesn't do a broadcast TLB flush so it is a lot
-        * faster).
+        * This is going to be *slow* (linear kernel virtual address debugging
+        * doesn't do a broadcast TLB flush so it is a lot faster).
         */
-#ifdef CONFIG_DEBUG_PAGEALLOC
-       vunmap_page_range(start, end);
-       flush_tlb_kernel_range(start, end);
-#endif
+       if (debug_pagealloc_enabled()) {
+               vunmap_page_range(start, end);
+               flush_tlb_kernel_range(start, end);
+       }
 }
 
 /*
-- 
1.9.1

Reply via email to