Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: CVS commit: src/sys/kern
simonb%NetBSD.org@localhost wrote:
> > splclock()/splx() unmatch?
>
> Yes indeed. I was a bit hasty commiting that.
>
> Please commit your fix.
Some people would hate goto (though I think it's okay for "break" case).
Which is better?
---
Izumi Tsutsui
Index: kern_tc.c
===================================================================
RCS file: /cvsroot/src/sys/kern/kern_tc.c,v
retrieving revision 1.11
diff -u -r1.11 kern_tc.c
--- kern_tc.c 7 Sep 2006 15:48:14 -0000 1.11
+++ kern_tc.c 10 Sep 2006 06:54:43 -0000
@@ -454,17 +454,15 @@
* Even though we run on the dummy counter, switching here may be
* worse since this timecounter may not be monotonous.
*/
- if (tc->tc_quality < 0)
- return;
- if (tc->tc_quality < timecounter->tc_quality)
- return;
- if (tc->tc_quality == timecounter->tc_quality &&
- tc->tc_frequency < timecounter->tc_frequency)
- return;
- (void)tc->tc_get_timecount(tc);
- (void)tc->tc_get_timecount(tc);
- timecounter = tc;
- tc_windup();
+ if (tc->tc_quality >= 0 &&
+ tc->tc_quality >= timecounter->tc_quality &&
+ (tc->tc_quality > timecounter->tc_quality ||
+ tc->tc_frequency >= timecounter->tc_frequency)) {
+ (void)tc->tc_get_timecount(tc);
+ (void)tc->tc_get_timecount(tc);
+ timecounter = tc;
+ tc_windup();
+ }
splx(s);
}
Home |
Main Index |
Thread Index |
Old Index