linux-mips.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* RE: SMTC lookup in smtc_distribute_timer
@ 2009-11-10 11:45 Mikael Starvik
  2009-11-10 19:45 ` Kevin D. Kissell
  0 siblings, 1 reply; 7+ messages in thread
From: Mikael Starvik @ 2009-11-10 11:45 UTC (permalink / raw)
  To: linux-mips@linux-mips.org; +Cc: Jesper Nilsson

Ok, my guess is something like this:

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.

One possible patch that seams to solve it for me below. This is probably 
not the correct solution so I'll need help from the SMTC experts to review
it and come up with the correct solution.

Best Regards
/Mikael

Index: cevt-smtc.c
===================================================================
RCS file: /usr/local/cvs/linux/os/linux-2.6/arch/mips/kernel/cevt-smtc.c,v
retrieving revision 1.2
diff -u -r1.2 cevt-smtc.c
--- cevt-smtc.c	2 Sep 2009 10:07:51 -0000	1.2
+++ cevt-smtc.c	10 Nov 2009 11:40:31 -0000
@@ -223,8 +223,10 @@
 		write_c0_compare(nextstamp);
 		ehb();
 		if ((nextstamp - (unsigned long)read_c0_count())
-			> (unsigned long)LONG_MAX)
+			> (unsigned long)LONG_MAX) {
+				nextstamp = 0L;  
 				goto repeat;
+			}
 	}
 }

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2009-11-12 17:02 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-10 11:45 SMTC lookup in smtc_distribute_timer Mikael Starvik
2009-11-10 19:45 ` Kevin D. Kissell
2009-11-11  6:44   ` Mikael Starvik
2009-11-11 19:23     ` Kevin D. Kissell
2009-11-12  8:26       ` Mikael Starvik
2009-11-12  9:39         ` Kevin D. Kissell
2009-11-12 17:02           ` Ralf Baechle

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).