Kaynağa Gözat

m68knommu: fix compare race in sched related code

The interrupts must be disabled before considering the need resched
bit of the task struct and they have to be disabled before calling
schedule()

Signed-off-by: Sebastian Siewior <bigeasy@linutronix.de>
Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Sebastian Siewior 17 yıl önce
ebeveyn
işleme
6c5a7d504f
1 değiştirilmiş dosya ile 2 ekleme ve 0 silme
  1. 2 0
      arch/m68knommu/platform/coldfire/entry.S

+ 2 - 0
arch/m68knommu/platform/coldfire/entry.S

@@ -103,6 +103,7 @@ ret_from_signal:
 	addql	#4,%sp
 
 ret_from_exception:
+	move	#0x2700,%sr		/* disable intrs */
 	btst	#5,%sp@(PT_SR)		/* check if returning to kernel */
 	jeq	Luser_return		/* if so, skip resched, signals */
 
@@ -156,6 +157,7 @@ Lreturn:
 
 Lwork_to_do:
 	movel	%a0@(TI_FLAGS),%d1	/* get thread_info->flags */
+	move	#0x2000,%sr		/* enable intrs again */
 	btst	#TIF_NEED_RESCHED,%d1
 	jne	reschedule