These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / arch / arm / kernel / sleep.S
index 7d37bfc..0f6c100 100644 (file)
@@ -81,7 +81,7 @@ ENTRY(__cpu_suspend)
        mov     r1, r4                  @ size of save block
        add     r0, sp, #8              @ pointer to save block
        bl      __cpu_suspend_save
-       adr     lr, BSYM(cpu_suspend_abort)
+       badr    lr, cpu_suspend_abort
        ldmfd   sp!, {r0, pc}           @ call suspend fn
 ENDPROC(__cpu_suspend)
        .ltorg
@@ -118,6 +118,16 @@ ENDPROC(cpu_resume_after_mmu)
 
        .text
        .align
+
+#ifdef CONFIG_MMU
+       .arm
+ENTRY(cpu_resume_arm)
+ THUMB(        badr    r9, 1f          )       @ Kernel is entered in ARM.
+ THUMB(        bx      r9              )       @ If this is a Thumb-2 kernel,
+ THUMB(        .thumb                  )       @ switch to Thumb now.
+ THUMB(1:                      )
+#endif
+
 ENTRY(cpu_resume)
 ARM_BE8(setend be)                     @ ensure we are in BE mode
 #ifdef CONFIG_ARM_VIRT_EXT
@@ -150,6 +160,10 @@ THUMB(     mov     sp, r2                  )
 THUMB( bx      r3                      )
 ENDPROC(cpu_resume)
 
+#ifdef CONFIG_MMU
+ENDPROC(cpu_resume_arm)
+#endif
+
        .align 2
 _sleep_save_sp:
        .long   sleep_save_sp - .