diff options
| -rw-r--r-- | arch/powerpc/kernel/entry_32.S | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/powerpc/kernel/entry_32.S b/arch/powerpc/kernel/entry_32.S index 96dce6a4b61e..b61cfd29c76f 100644 --- a/arch/powerpc/kernel/entry_32.S +++ b/arch/powerpc/kernel/entry_32.S | |||
| @@ -730,6 +730,9 @@ fast_exception_return: | |||
| 730 | mtcr r10 | 730 | mtcr r10 |
| 731 | lwz r10,_LINK(r11) | 731 | lwz r10,_LINK(r11) |
| 732 | mtlr r10 | 732 | mtlr r10 |
| 733 | /* Clear the exception_marker on the stack to avoid confusing stacktrace */ | ||
| 734 | li r10, 0 | ||
| 735 | stw r10, 8(r11) | ||
| 733 | REST_GPR(10, r11) | 736 | REST_GPR(10, r11) |
| 734 | #if defined(CONFIG_PPC_8xx) && defined(CONFIG_PERF_EVENTS) | 737 | #if defined(CONFIG_PPC_8xx) && defined(CONFIG_PERF_EVENTS) |
| 735 | mtspr SPRN_NRI, r0 | 738 | mtspr SPRN_NRI, r0 |
| @@ -961,6 +964,9 @@ END_FTR_SECTION_IFSET(CPU_FTR_NEED_PAIRED_STWCX) | |||
| 961 | mtcrf 0xFF,r10 | 964 | mtcrf 0xFF,r10 |
| 962 | mtlr r11 | 965 | mtlr r11 |
| 963 | 966 | ||
| 967 | /* Clear the exception_marker on the stack to avoid confusing stacktrace */ | ||
| 968 | li r10, 0 | ||
| 969 | stw r10, 8(r1) | ||
| 964 | /* | 970 | /* |
| 965 | * Once we put values in SRR0 and SRR1, we are in a state | 971 | * Once we put values in SRR0 and SRR1, we are in a state |
| 966 | * where exceptions are not recoverable, since taking an | 972 | * where exceptions are not recoverable, since taking an |
| @@ -997,6 +1003,9 @@ exc_exit_restart_end: | |||
| 997 | mtlr r11 | 1003 | mtlr r11 |
| 998 | lwz r10,_CCR(r1) | 1004 | lwz r10,_CCR(r1) |
| 999 | mtcrf 0xff,r10 | 1005 | mtcrf 0xff,r10 |
| 1006 | /* Clear the exception_marker on the stack to avoid confusing stacktrace */ | ||
| 1007 | li r10, 0 | ||
| 1008 | stw r10, 8(r1) | ||
| 1000 | REST_2GPRS(9, r1) | 1009 | REST_2GPRS(9, r1) |
| 1001 | .globl exc_exit_restart | 1010 | .globl exc_exit_restart |
| 1002 | exc_exit_restart: | 1011 | exc_exit_restart: |
