MIPS: SMTC: Fix lockup in smtc_distribute_timer

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linux Kernel Mailing List
Date: Saturday, November 14, 2009 - 2:59 pm

Gitweb:     http://git.kernel.org/linus/5df9d11be46a9f704208644a1e7f13c6104ecff2
Commit:     5df9d11be46a9f704208644a1e7f13c6104ecff2
Parent:     1b12a9c87792550a3d7f5f39eb529c822b911b17
Author:     Kevin D. Kissell <kevink@paralogos.com>
AuthorDate: Tue Nov 10 11:45:46 2009 -0800
Committer:  Ralf Baechle <ralf@linux-mips.org>
CommitDate: Fri Nov 13 18:10:38 2009 +0100

    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 |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/arch/mips/kernel/cevt-smtc.c b/arch/mips/kernel/cevt-smtc.c
index 98bd7de..b102e4f 100644
--- a/arch/mips/kernel/cevt-smtc.c
+++ b/arch/mips/kernel/cevt-smtc.c
@@ -173,11 +173,12 @@ void smtc_distribute_timer(int vpe)
 	unsigned int mtflags;
 	int cpu;
 	struct clock_event_device *cd;
-	unsigned long nextstamp = 0L;
+	unsigned long nextstamp;
 	unsigned long reference;
 
 
 repeat:
+	nextstamp = 0L;
 	for_each_online_cpu(cpu) {
 	    /*
 	     * Find virtual CPUs within the current VPE who have
--
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
MIPS: SMTC: Fix lockup in smtc_distribute_timer, Linux Kernel Mailing ..., (Sat Nov 14, 2:59 pm)