[PATCH] m68knommu: fix scheduling and race problems in idle loop
authorGreg Ungerer <gerg@snapgear.com>
Fri, 3 Jun 2005 01:35:20 +0000 (11:35 +1000)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 3 Jun 2005 15:16:17 +0000 (08:16 -0700)
commitb05a720b374ac6af05b2fd4c70bb2c61a9f461ca
tree12de6955d12cd3c5660dd3411a50b125073688fa
parentf4d340cf869b2b63e1043eed72aa2eab6fa2cb2c
[PATCH] m68knommu: fix scheduling and race problems in idle loop

Re-work the m68knommu specific idle code according to suggestions
from Nick Piggin <nickpiggin@yahoo.com.au>.

A couple of rules that we need to follow:

1. Preempt should now disabled over idle routines. Should only be enabled
to call schedule() then disabled again.

3. When cpu_idle finds (need_resched() == 'true'), it should call schedule().
It should not call schedule() otherwise.

Also fix interrupt locking around the need_resched() and cpu stop state
so that there is no race condition.

Signed-off-by: Greg Ungerer <gerg@snapgear.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/m68knommu/kernel/process.c