These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / arm / kernel / head-nommu.S
index aebfbf7..9b8c5a1 100644 (file)
@@ -46,7 +46,7 @@ ENTRY(stext)
        .arm
 ENTRY(stext)
 
- THUMB(        adr     r9, BSYM(1f)    )       @ Kernel is always entered in ARM.
+ THUMB(        badr    r9, 1f          )       @ Kernel is always entered in ARM.
  THUMB(        bx      r9              )       @ If this is a Thumb-2 kernel,
  THUMB(        .thumb                  )       @ switch to Thumb now.
  THUMB(1:                      )
@@ -77,13 +77,13 @@ ENTRY(stext)
        orr     r6, r6, #(1 << MPU_RSR_EN)      @ Set region enabled bit
        bl      __setup_mpu
 #endif
-       ldr     r13, =__mmap_switched           @ address to jump to after
-                                               @ initialising sctlr
-       adr     lr, BSYM(1f)                    @ return (PIC) address
+
+       badr    lr, 1f                          @ return (PIC) address
        ldr     r12, [r10, #PROCINFO_INITFUNC]
        add     r12, r12, r10
        ret     r12
- 1:    b       __after_proc_init
+1:     bl      __after_proc_init
+       b       __mmap_switched
 ENDPROC(stext)
 
 #ifdef CONFIG_SMP
@@ -106,8 +106,7 @@ ENTRY(secondary_startup)
        movs    r10, r5                         @ invalid processor?
        beq     __error_p                       @ yes, error 'p'
 
-       adr     r4, __secondary_data
-       ldmia   r4, {r7, r12}
+       ldr     r7, __secondary_data
 
 #ifdef CONFIG_ARM_MPU
        /* Use MPU region info supplied by __cpu_up */
@@ -115,23 +114,19 @@ ENTRY(secondary_startup)
        bl      __setup_mpu                     @ Initialize the MPU
 #endif
 
-       adr     lr, BSYM(__after_proc_init)     @ return address
-       mov     r13, r12                        @ __secondary_switched address
+       badr    lr, 1f                          @ return (PIC) address
        ldr     r12, [r10, #PROCINFO_INITFUNC]
        add     r12, r12, r10
        ret     r12
-ENDPROC(secondary_startup)
-
-ENTRY(__secondary_switched)
-       ldr     sp, [r7, #8]                    @ set up the stack pointer
+1:     bl      __after_proc_init
+       ldr     sp, [r7, #12]                   @ set up the stack pointer
        mov     fp, #0
        b       secondary_start_kernel
-ENDPROC(__secondary_switched)
+ENDPROC(secondary_startup)
 
        .type   __secondary_data, %object
 __secondary_data:
        .long   secondary_data
-       .long   __secondary_switched
 #endif /* CONFIG_SMP */
 
 /*
@@ -164,7 +159,7 @@ __after_proc_init:
 #endif
        mcr     p15, 0, r0, c1, c0, 0           @ write control reg
 #endif /* CONFIG_CPU_CP15 */
-       ret     r13
+       ret     lr
 ENDPROC(__after_proc_init)
        .ltorg