svn commit: r247088 - head/sys/i386/isa

Warner Losh imp at FreeBSD.org
Thu Feb 21 07:16:41 UTC 2013


Author: imp
Date: Thu Feb 21 07:16:40 2013
New Revision: 247088
URL: http://svnweb.freebsd.org/changeset/base/247088

Log:
  Locking for todr got pushed down into inittodr and the client
  libraries it calls (although some might not be doing it right). We are
  serialized right now by giant as well. This means the splsoftclock are
  now an anachronism that has no benefit, even marking where locking
  needs to happen. Remove them.

Modified:
  head/sys/i386/isa/pmtimer.c

Modified: head/sys/i386/isa/pmtimer.c
==============================================================================
--- head/sys/i386/isa/pmtimer.c	Thu Feb 21 06:38:49 2013	(r247087)
+++ head/sys/i386/isa/pmtimer.c	Thu Feb 21 07:16:40 2013	(r247088)
@@ -82,26 +82,21 @@ static struct timeval diff_time;
 static int
 pmtimer_suspend(device_t dev)
 {
-	int	pl;
 
-	pl = splsoftclock();
 	microtime(&diff_time);
 	inittodr(0);
 	microtime(&suspend_time);
 	timevalsub(&diff_time, &suspend_time);
-	splx(pl);
 	return (0);
 }
 
 static int
 pmtimer_resume(device_t dev)
 {
-	int pl;
 	u_int second, minute, hour;
 	struct timeval resume_time, tmp_time;
 
 	/* modified for adjkerntz */
-	pl = splsoftclock();
 	timer_restore();		/* restore the all timers */
 	inittodr(0);			/* adjust time to RTC */
 	microtime(&resume_time);
@@ -118,16 +113,13 @@ pmtimer_resume(device_t dev)
 	timevalsub(&resume_time, &suspend_time);
 	/* Fixup the calltodo list with the delta time. */
 	adjust_timeout_calltodo(&resume_time);
-#endif /* PMTIMER_FIXUP_CALLTODOK */
-	splx(pl);
-#ifndef PMTIMER_FIXUP_CALLTODO
-	second = resume_time.tv_sec - suspend_time.tv_sec; 
-#else /* PMTIMER_FIXUP_CALLTODO */
 	/* 
 	 * We've already calculated resume_time to be the delta between 
 	 * the suspend and the resume. 
 	 */
 	second = resume_time.tv_sec; 
+#else /* !PMTIMER_FIXUP_CALLTODO */
+	second = resume_time.tv_sec - suspend_time.tv_sec; 
 #endif /* PMTIMER_FIXUP_CALLTODO */
 	hour = second / 3600;
 	second %= 3600;


More information about the svn-src-all mailing list