Commit 90437bff authored by Valentin Schneider's avatar Valentin Schneider Committed by Michael Ellerman
Browse files

powerpc/entry: Remove unneeded need_resched() loop



Since the enabling and disabling of IRQs within preempt_schedule_irq()
is contained in a need_resched() loop, we don't need the outer arch
code loop.

Signed-off-by: default avatarValentin Schneider <valentin.schneider@arm.com>
[mpe: Rebase since CURRENT_THREAD_INFO() removal]
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent 32eebf96
Loading
Loading
Loading
Loading
+1 −4
Original line number Diff line number Diff line
@@ -906,10 +906,7 @@ resume_kernel:
	 */
	bl	trace_hardirqs_off
#endif
1:	bl	preempt_schedule_irq
	lwz	r3,TI_FLAGS(r2)
	andi.	r0,r3,_TIF_NEED_RESCHED
	bne-	1b
	bl	preempt_schedule_irq
#ifdef CONFIG_TRACE_IRQFLAGS
	/* And now, to properly rebalance the above, we tell lockdep they
	 * are being turned back on, which will happen when we return
+1 −7
Original line number Diff line number Diff line
@@ -865,13 +865,7 @@ resume_kernel:
	 * sure we are soft-disabled first and reconcile irq state.
	 */
	RECONCILE_IRQ_STATE(r3,r4)
1:	bl	preempt_schedule_irq

	/* Re-test flags and eventually loop */
	ld	r9, PACA_THREAD_INFO(r13)
	ld	r4,TI_FLAGS(r9)
	andi.	r0,r4,_TIF_NEED_RESCHED
	bne	1b
	bl	preempt_schedule_irq

	/*
	 * arch_local_irq_restore() from preempt_schedule_irq above may