diff options
Diffstat (limited to 'arch/powerpc/kernel/entry_32.S')
-rw-r--r-- | arch/powerpc/kernel/entry_32.S | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S index 3a05e9f93d42..888a364043a8 100644 --- a/arch/powerpc/kernel/entry_32.S +++ b/arch/powerpc/kernel/entry_32.S | |||
@@ -147,6 +147,7 @@ transfer_to_handler: | |||
147 | lwz r12,TI_LOCAL_FLAGS(r9) | 147 | lwz r12,TI_LOCAL_FLAGS(r9) |
148 | mtcrf 0x01,r12 | 148 | mtcrf 0x01,r12 |
149 | bt- 31-TLF_NAPPING,4f | 149 | bt- 31-TLF_NAPPING,4f |
150 | bt- 31-TLF_SLEEPING,7f | ||
150 | #endif /* CONFIG_6xx */ | 151 | #endif /* CONFIG_6xx */ |
151 | .globl transfer_to_handler_cont | 152 | .globl transfer_to_handler_cont |
152 | transfer_to_handler_cont: | 153 | transfer_to_handler_cont: |
@@ -164,6 +165,13 @@ transfer_to_handler_cont: | |||
164 | 4: rlwinm r12,r12,0,~_TLF_NAPPING | 165 | 4: rlwinm r12,r12,0,~_TLF_NAPPING |
165 | stw r12,TI_LOCAL_FLAGS(r9) | 166 | stw r12,TI_LOCAL_FLAGS(r9) |
166 | b power_save_6xx_restore | 167 | b power_save_6xx_restore |
168 | |||
169 | 7: rlwinm r12,r12,0,~_TLF_SLEEPING | ||
170 | stw r12,TI_LOCAL_FLAGS(r9) | ||
171 | lwz r9,_MSR(r11) /* if sleeping, clear MSR.EE */ | ||
172 | rlwinm r9,r9,0,~MSR_EE | ||
173 | lwz r12,_LINK(r11) /* and return to address in LR */ | ||
174 | b fast_exception_return | ||
167 | #endif | 175 | #endif |
168 | 176 | ||
169 | /* | 177 | /* |