_stext = .;
                HEAD_TEXT
        }
+       .text : {                       /* Real text segment            */
+               _text = .;              /* Text and read-only data      */
+                       __exception_text_start = .;
+                       *(.exception.text)
+                       __exception_text_end = .;
+                       IRQENTRY_TEXT
+                       TEXT_TEXT
+                       SCHED_TEXT
+                       LOCK_TEXT
+                       KPROBES_TEXT
+#ifdef CONFIG_MMU
+                       *(.fixup)
+#endif
+                       *(.gnu.warning)
+                       *(.glue_7)
+                       *(.glue_7t)
+               . = ALIGN(4);
+               *(.got)                 /* Global offset table          */
+                       ARM_CPU_KEEP(PROC_INFO)
+       }
+
+       RO_DATA(PAGE_SIZE)
+
+#ifdef CONFIG_ARM_UNWIND
+       /*
+        * Stack unwinding tables
+        */
+       . = ALIGN(8);
+       .ARM.unwind_idx : {
+               __start_unwind_idx = .;
+               *(.ARM.exidx*)
+               __stop_unwind_idx = .;
+       }
+       .ARM.unwind_tab : {
+               __start_unwind_tab = .;
+               *(.ARM.extab*)
+               __stop_unwind_tab = .;
+       }
+#endif
+
+       _etext = .;                     /* End of text and rodata section */
+
+#ifndef CONFIG_XIP_KERNEL
+       . = ALIGN(PAGE_SIZE);
+       __init_begin = .;
+#endif
+
        INIT_TEXT_SECTION(8)
        .exit.text : {
                ARM_EXIT_KEEP(EXIT_TEXT)
 
        PERCPU_SECTION(32)
 
-#ifndef CONFIG_XIP_KERNEL
-       __init_begin = _stext;
-       . = ALIGN(PAGE_SIZE);
-       __init_end = .;
-#endif
-
-       .text : {                       /* Real text segment            */
-               _text = .;              /* Text and read-only data      */
-                       __exception_text_start = .;
-                       *(.exception.text)
-                       __exception_text_end = .;
-                       IRQENTRY_TEXT
-                       TEXT_TEXT
-                       SCHED_TEXT
-                       LOCK_TEXT
-                       KPROBES_TEXT
-#ifdef CONFIG_MMU
-                       *(.fixup)
-#endif
-                       *(.gnu.warning)
-                       *(.glue_7)
-                       *(.glue_7t)
-               . = ALIGN(4);
-               *(.got)                 /* Global offset table          */
-                       ARM_CPU_KEEP(PROC_INFO)
-       }
-
-       RO_DATA(PAGE_SIZE)
-
-#ifdef CONFIG_ARM_UNWIND
-       /*
-        * Stack unwinding tables
-        */
-       . = ALIGN(8);
-       .ARM.unwind_idx : {
-               __start_unwind_idx = .;
-               *(.ARM.exidx*)
-               __stop_unwind_idx = .;
-       }
-       .ARM.unwind_tab : {
-               __start_unwind_tab = .;
-               *(.ARM.extab*)
-               __stop_unwind_tab = .;
-       }
-#endif
-
-       _etext = .;                     /* End of text and rodata section */
-
 #ifdef CONFIG_XIP_KERNEL
        __data_loc = ALIGN(4);          /* location in binary */
        . = PAGE_OFFSET + TEXT_OFFSET;
 #else
+       __init_end = .;
        . = ALIGN(THREAD_SIZE);
        __data_loc = .;
 #endif
 
                        "    pkmap   : 0x%08lx - 0x%08lx   (%4ld MB)\n"
 #endif
                        "    modules : 0x%08lx - 0x%08lx   (%4ld MB)\n"
-                       "      .init : 0x%p" " - 0x%p" "   (%4d kB)\n"
                        "      .text : 0x%p" " - 0x%p" "   (%4d kB)\n"
+                       "      .init : 0x%p" " - 0x%p" "   (%4d kB)\n"
                        "      .data : 0x%p" " - 0x%p" "   (%4d kB)\n"
                        "       .bss : 0x%p" " - 0x%p" "   (%4d kB)\n",
 
 #endif
                        MLM(MODULES_VADDR, MODULES_END),
 
-                       MLK_ROUNDUP(__init_begin, __init_end),
                        MLK_ROUNDUP(_text, _etext),
+                       MLK_ROUNDUP(__init_begin, __init_end),
                        MLK_ROUNDUP(_sdata, _edata),
                        MLK_ROUNDUP(__bss_start, __bss_stop));