MIPS: SMTC: Fix lockup in smtc_distribute_timer
authorKevin D. Kissell <kevink@paralogos.com>
Tue, 10 Nov 2009 19:45:46 +0000 (11:45 -0800)
committerRalf Baechle <ralf@linux-mips.org>
Fri, 13 Nov 2009 17:10:38 +0000 (18:10 +0100)
commit5df9d11be46a9f704208644a1e7f13c6104ecff2
tree9d60800fa2b9678c53fc78f3100821c20184e2c1
parent1b12a9c87792550a3d7f5f39eb529c822b911b17
MIPS: SMTC: Fix lockup in smtc_distribute_timer

1. At the end of smtc_distribute_timer, nextstamp is valid and has already
   passed so we goto repeat.
2. Nothing updates nextstamp (only updated if the timeout is in the future
   And we just decided it is in the past)
3. At the end nextstamp still has the same value so it is still valid and
   in the past.
4. This repeats until read_c0_count has a value which causes nextstamp to
   be in the future.

Reported and initial patch and testing  by Mikael Starvik
<mikael.starvik@axis.com>.

Signed-off-by: Kevin D. Kissell <kevink@paralogos.com>
Cc: Mikael Starvik <mikael.starvik@axis.com>
Cc: linux-mips@linux-mips.org
Cc: Jesper Nilsson <Jesper.Nilsson@axis.com>
Patchwork: http://patchwork.linux-mips.org/patch/621/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/cevt-smtc.c