diff options
Diffstat (limited to 'arch/powerpc/kernel/idle_power4.S')
| -rw-r--r-- | arch/powerpc/kernel/idle_power4.S | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/powerpc/kernel/idle_power4.S b/arch/powerpc/kernel/idle_power4.S index 6dad1c02496e..d85c7c938eed 100644 --- a/arch/powerpc/kernel/idle_power4.S +++ b/arch/powerpc/kernel/idle_power4.S | |||
| @@ -35,12 +35,16 @@ BEGIN_FTR_SECTION | |||
| 35 | DSSALL | 35 | DSSALL |
| 36 | sync | 36 | sync |
| 37 | END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) | 37 | END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC) |
| 38 | clrrdi r9,r1,THREAD_SHIFT /* current thread_info */ | ||
| 39 | ld r8,TI_LOCAL_FLAGS(r9) /* set napping bit */ | ||
| 40 | ori r8,r8,_TLF_NAPPING /* so when we take an exception */ | ||
| 41 | std r8,TI_LOCAL_FLAGS(r9) /* it will return to our caller */ | ||
| 38 | mfmsr r7 | 42 | mfmsr r7 |
| 39 | ori r7,r7,MSR_EE | 43 | ori r7,r7,MSR_EE |
| 40 | oris r7,r7,MSR_POW@h | 44 | oris r7,r7,MSR_POW@h |
| 41 | sync | 45 | 1: sync |
| 42 | isync | 46 | isync |
| 43 | mtmsrd r7 | 47 | mtmsrd r7 |
| 44 | isync | 48 | isync |
| 45 | sync | 49 | b 1b |
| 46 | blr | 50 | |
