]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - arch/x86/mm/init_64.c
x86/mm: Report which part of kernel image is freed
[linux.git] / arch / x86 / mm / init_64.c
index a6b5c653727badfd0823a6035eb5c1f9e0f5eb3c..dcb9bc961b39c3e2928eb4d15f681c8dad29591e 100644 (file)
@@ -1263,7 +1263,7 @@ int kernel_set_to_readonly;
 void set_kernel_text_rw(void)
 {
        unsigned long start = PFN_ALIGN(_text);
-       unsigned long end = PFN_ALIGN(__stop___ex_table);
+       unsigned long end = PFN_ALIGN(_etext);
 
        if (!kernel_set_to_readonly)
                return;
@@ -1282,7 +1282,7 @@ void set_kernel_text_rw(void)
 void set_kernel_text_ro(void)
 {
        unsigned long start = PFN_ALIGN(_text);
-       unsigned long end = PFN_ALIGN(__stop___ex_table);
+       unsigned long end = PFN_ALIGN(_etext);
 
        if (!kernel_set_to_readonly)
                return;
@@ -1300,9 +1300,9 @@ void mark_rodata_ro(void)
 {
        unsigned long start = PFN_ALIGN(_text);
        unsigned long rodata_start = PFN_ALIGN(__start_rodata);
-       unsigned long end = (unsigned long) &__end_rodata_hpage_align;
-       unsigned long text_end = PFN_ALIGN(&__stop___ex_table);
-       unsigned long rodata_end = PFN_ALIGN(&__end_rodata);
+       unsigned long end = (unsigned long)__end_rodata_hpage_align;
+       unsigned long text_end = PFN_ALIGN(_etext);
+       unsigned long rodata_end = PFN_ALIGN(__end_rodata);
        unsigned long all_end;
 
        printk(KERN_INFO "Write protecting the kernel read-only data: %luk\n",
@@ -1334,8 +1334,10 @@ void mark_rodata_ro(void)
        set_memory_ro(start, (end-start) >> PAGE_SHIFT);
 #endif
 
-       free_kernel_image_pages((void *)text_end, (void *)rodata_start);
-       free_kernel_image_pages((void *)rodata_end, (void *)_sdata);
+       free_kernel_image_pages("unused kernel image (text/rodata gap)",
+                               (void *)text_end, (void *)rodata_start);
+       free_kernel_image_pages("unused kernel image (rodata/data gap)",
+                               (void *)rodata_end, (void *)_sdata);
 
        debug_checkwx();
 }