extern unsigned long arch_align_stack(unsigned long sp);
 void free_init_pages(const char *what, unsigned long begin, unsigned long end);
-extern void free_kernel_image_pages(void *begin, void *end);
+extern void free_kernel_image_pages(const char *what, void *begin, void *end);
 
 void default_idle(void);
 #ifdef CONFIG_XEN
 
  * used for the kernel image only.  free_init_pages() will do the
  * right thing for either kind of address.
  */
-void free_kernel_image_pages(void *begin, void *end)
+void free_kernel_image_pages(const char *what, void *begin, void *end)
 {
        unsigned long begin_ul = (unsigned long)begin;
        unsigned long end_ul = (unsigned long)end;
        unsigned long len_pages = (end_ul - begin_ul) >> PAGE_SHIFT;
 
-
-       free_init_pages("unused kernel image", begin_ul, end_ul);
+       free_init_pages(what, begin_ul, end_ul);
 
        /*
         * PTI maps some of the kernel into userspace.  For performance,
 
        mem_encrypt_free_decrypted_mem();
 
-       free_kernel_image_pages(&__init_begin, &__init_end);
+       free_kernel_image_pages("unused kernel image (initmem)",
+                               &__init_begin, &__init_end);
 }
 
 #ifdef CONFIG_BLK_DEV_INITRD
 
        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();
 }