diff options
Diffstat (limited to 'arch/powerpc/kernel/entry_64.S')
-rw-r--r-- | arch/powerpc/kernel/entry_64.S | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S index bbfb0294b354..662c6dd98072 100644 --- a/arch/powerpc/kernel/entry_64.S +++ b/arch/powerpc/kernel/entry_64.S | |||
@@ -664,8 +664,16 @@ _GLOBAL(ret_from_except_lite) | |||
664 | bl .restore_interrupts | 664 | bl .restore_interrupts |
665 | SCHEDULE_USER | 665 | SCHEDULE_USER |
666 | b .ret_from_except_lite | 666 | b .ret_from_except_lite |
667 | 667 | 2: | |
668 | 2: bl .save_nvgprs | 668 | #ifdef CONFIG_PPC_TRANSACTIONAL_MEM |
669 | andi. r0,r4,_TIF_USER_WORK_MASK & ~_TIF_RESTORE_TM | ||
670 | bne 3f /* only restore TM if nothing else to do */ | ||
671 | addi r3,r1,STACK_FRAME_OVERHEAD | ||
672 | bl .restore_tm_state | ||
673 | b restore | ||
674 | 3: | ||
675 | #endif | ||
676 | bl .save_nvgprs | ||
669 | bl .restore_interrupts | 677 | bl .restore_interrupts |
670 | addi r3,r1,STACK_FRAME_OVERHEAD | 678 | addi r3,r1,STACK_FRAME_OVERHEAD |
671 | bl .do_notify_resume | 679 | bl .do_notify_resume |