linux-rt-users.vger.kernel.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).