cvs commit: src/sys/i386/isa clock.c

Bruce Evans bde at
Mon Mar 5 09:10:17 UTC 2007

bde         2007-03-05 09:10:17 UTC

  FreeBSD src repository

  Modified files:
    sys/i386/isa         clock.c 
  Partial fix for a bug in rev.1.231.  If suspend/resume clobbers the
  RTC state, then it may clobber the RTC index register, so the index
  register must be restored before using it to restore control registers
  in rtc_restore().
  The following problems remain:
  - rtc_restore() is only called if pmtimer is configured.  Buggy
    suspend/resumes are more likely to clobber the index register than
    a control register, so pmtimer is more needed than it used to be.
  - pmtimer doesn't exist for amd64.
  - Restoring of the RTC state may race with rtcintr().  If an RTC
    interrupt is handled before the state is restored, then rtcin(RTC_INTR)
    in rtcintr() may read from the wrong register, so rtcintr() may spin
    forever.  This may be mitigated by the most common state clobbering
    being to turn off RTC interrupts.
  Revision  Changes    Path
  1.235     +1 -0      src/sys/i386/isa/clock.c

More information about the cvs-src mailing list