[PARISC] Use DEBUG_KERNEL to catch used-after-free __init data
authorHelge Deller <deller@parisc-linux.org>
Sun, 15 Jan 2006 19:11:50 +0000 (12:11 -0700)
committerKyle McMartin <kyle@duet.int.mcmartin.ca>
Mon, 23 Jan 2006 01:26:55 +0000 (20:26 -0500)
Use CONFIG_DEBUG_KERNEL to catch kernel code which tries to access
__init data after it is freed. When CONFIG_DEBUG_KERNEL is not set
this also cleans up a WARN_ON at boot time. Also remove some dead
code from mm/init.c

Signed-off-by: Helge Deller <deller@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
arch/parisc/mm/init.c

index 6f36d0b17d9e7b7ac588223e9daaf3c97708ae13..7847ca13d6c2933b2be345e8d73a9ffd3d1229db 100644 (file)
@@ -371,17 +371,11 @@ static void __init setup_bootmem(void)
 
 void free_initmem(void)
 {
-       /* FIXME: */
-#if 0
-       printk(KERN_INFO "NOT FREEING INITMEM (%dk)\n",
-                       (&__init_end - &__init_begin) >> 10);
-       return;
-#else
        unsigned long addr;
        
        printk(KERN_INFO "Freeing unused kernel memory: ");
 
-#if 1
+#ifdef CONFIG_DEBUG_KERNEL
        /* Attempt to catch anyone trying to execute code here
         * by filling the page with BRK insns.
         * 
@@ -414,7 +408,6 @@ void free_initmem(void)
        pdc_chassis_send_status(PDC_CHASSIS_DIRECT_BCOMPLETE);
        
        printk("%luk freed\n", (unsigned long)(&__init_end - &__init_begin) >> 10);
-#endif
 }