All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH][PPC64][RT] Fix a previously reverted fix again
@ 2008-08-07 12:35 Chirag Jog
  0 siblings, 0 replies; only message in thread
From: Chirag Jog @ 2008-08-07 12:35 UTC (permalink / raw)
  To: Steven Rostedt, LKML, linux-rt-users
  Cc: Timothy R. Chavez, Josh Triplett, Sebastien Dugue


Hi Steven,
   Ironically in the 2.6.26-rt1,the patch fix-a-previously-reverted-fix.patch
   again got reverted ;).
   
   Here the patch that should replace the above patch.

This patch reintroduces a "fix" that got reverted.
Here was the original patch http://lkml.org/lkml/2007/5/22/133

Here is the new patch
This patch also fixes OOPS reported here: http://lkml.org/lkml/2008/6/19/146

>From tsutomu.owa@toshiba.co.jp
Signed-Off-By: Chirag <chirag@linux.vnet.ibm.com>



---
 arch/powerpc/kernel/entry_64.S |   19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

Index: linux-2.6.26-rt1/arch/powerpc/kernel/entry_64.S
===================================================================
--- linux-2.6.26-rt1.orig/arch/powerpc/kernel/entry_64.S	2008-08-07 10:35:18.000000000 +0000
+++ linux-2.6.26-rt1/arch/powerpc/kernel/entry_64.S	2008-08-07 11:33:55.000000000 +0000
@@ -595,30 +595,31 @@
 	bne	restore
 	/* here we are preempting the current task */
 1:
+	/*
+	 * preempt_schedule_irq() expects interrupts disabled and returns
+	 * with interrupts disabled. No need to check preemption again,
+	 * preempt_schedule_irq just did that for us.
+	 */
+	bl	.preempt_schedule_irq
 #ifdef CONFIG_TRACE_IRQFLAGS
 	bl	.trace_hardirqs_on
+#endif /* CONFIG_TRACE_IRQFLAGS */
+
 	/* Note: we just clobbered r10 which used to contain the previous
 	 * MSR before the hard-disabling done by the caller of do_work.
 	 * We don't have that value anymore, but it doesn't matter as
 	 * we will hard-enable unconditionally, we can just reload the
 	 * current MSR into r10
 	 */
-	mfmsr	r10
-#endif /* CONFIG_TRACE_IRQFLAGS */
-	li	r0,1
-	stb	r0,PACASOFTIRQEN(r13)
-	stb	r0,PACAHARDIRQEN(r13)
-	ori	r10,r10,MSR_EE
-	mtmsrd	r10,1		/* reenable interrupts */
-	bl	.preempt_schedule
-	mfmsr	r10
-	clrrdi	r9,r1,THREAD_SHIFT
-	rldicl	r10,r10,48,1	/* disable interrupts again */
-	rotldi	r10,r10,16
-	mtmsrd	r10,1
-	ld	r4,TI_FLAGS(r9)
-	andi.	r0,r4,_TIF_NEED_RESCHED
-	bne	1b
+	bl	.preempt_schedule_irq
+	mfmsr   r10
+	clrrdi  r9,r1,THREAD_SHIFT
+	rldicl  r10,r10,48,1    /* disable interrupts again */
+	rotldi  r10,r10,16
+	mtmsrd  r10,1
+	ld      r4,TI_FLAGS(r9)
+	andi.   r0,r4,(_TIF_NEED_RESCHED)
+	bne     1b
 	b	restore
 
 user_work:

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-08-07 12:35 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-07 12:35 [PATCH][PPC64][RT] Fix a previously reverted fix again Chirag Jog

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.