From: Priyanka Jain <priyanka.j...@freescale.com>

In ret_from_except_lite() with CONFIG_PREEMPT enabled,
add the missing check to compare value of preempt_count
with zero before continuing with preemption process of
the current task.
If preempt_count is non-zero, restore reg and return,
else continue the preemption process.

Cc: stable...@vger.kernel.org
Signed-off-by: Priyanka Jain <priyanka.j...@freescale.com>
Signed-off-by: Sebastian Andrzej Siewior <bige...@linutronix.de>
Signed-off-by: Steven Rostedt <rost...@goodmis.org>
---
 arch/powerpc/kernel/entry_64.S |    2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/powerpc/kernel/entry_64.S b/arch/powerpc/kernel/entry_64.S
index a9b98cc..7af1ea7 100644
--- a/arch/powerpc/kernel/entry_64.S
+++ b/arch/powerpc/kernel/entry_64.S
@@ -596,6 +596,8 @@ resume_kernel:
 #ifdef CONFIG_PREEMPT
        /* Check if we need to preempt */
        lwz     r8,TI_PREEMPT(r9)
+       cmpwi   0,r8,0          /* if non-zero, just restore regs and return */
+       bne     restore
        andi.   r0,r4,_TIF_NEED_RESCHED
        bne+    1f
 
-- 
1.7.10.4


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to