diff options
Diffstat (limited to 'arch/arm64/kernel/sleep.S')
| -rw-r--r-- | arch/arm64/kernel/sleep.S | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/arm64/kernel/sleep.S b/arch/arm64/kernel/sleep.S index 9a3aec97ac09..ccf79d849e0a 100644 --- a/arch/arm64/kernel/sleep.S +++ b/arch/arm64/kernel/sleep.S | |||
| @@ -101,12 +101,20 @@ ENTRY(cpu_resume) | |||
| 101 | bl el2_setup // if in EL2 drop to EL1 cleanly | 101 | bl el2_setup // if in EL2 drop to EL1 cleanly |
| 102 | /* enable the MMU early - so we can access sleep_save_stash by va */ | 102 | /* enable the MMU early - so we can access sleep_save_stash by va */ |
| 103 | adr_l lr, __enable_mmu /* __cpu_setup will return here */ | 103 | adr_l lr, __enable_mmu /* __cpu_setup will return here */ |
| 104 | ldr x27, =_cpu_resume /* __enable_mmu will branch here */ | 104 | adr_l x27, _resume_switched /* __enable_mmu will branch here */ |
| 105 | adrp x25, idmap_pg_dir | 105 | adrp x25, idmap_pg_dir |
| 106 | adrp x26, swapper_pg_dir | 106 | adrp x26, swapper_pg_dir |
| 107 | b __cpu_setup | 107 | b __cpu_setup |
| 108 | ENDPROC(cpu_resume) | 108 | ENDPROC(cpu_resume) |
| 109 | 109 | ||
| 110 | .pushsection ".idmap.text", "ax" | ||
| 111 | _resume_switched: | ||
| 112 | ldr x8, =_cpu_resume | ||
| 113 | br x8 | ||
| 114 | ENDPROC(_resume_switched) | ||
| 115 | .ltorg | ||
| 116 | .popsection | ||
| 117 | |||
| 110 | ENTRY(_cpu_resume) | 118 | ENTRY(_cpu_resume) |
| 111 | mrs x1, mpidr_el1 | 119 | mrs x1, mpidr_el1 |
| 112 | adrp x8, mpidr_hash | 120 | adrp x8, mpidr_hash |
