freebsd-dev/sys/i386
Bruce Evans 0f19e631e2 Fixed races accessing the RTC. The races apparently caused
apm_default_resume() to sometimes set a very wrong time.
(1) Accesses to the RTC index and data registers were not atomic enough.
    Interrupts were not masked.  This was only good enough until an
    interrupt handler (rtcintr()) started accessing the RTC in FreeBSD-2.0.
(2) Access to the block of time registers in inittodr() was not atomic
    enough.  inittodr() has 244us to read the time registers.  Interrupts
    were not masked.  This was only good enough until something (apm)
    started calling inittodr() after boot time in FreeBSD-2.0.
The fix for (2) also makes the timecounter update more atomic, although
this is currently unimportant due to the low resolution of the RTC.

Problem reported by:	mckay
1999-12-25 15:30:31 +00:00
..
apm Remove code to select APM version with flags to the apm0 device. This 1999-12-02 03:13:11 +00:00
bios Remove code to select APM version with flags to the apm0 device. This 1999-12-02 03:13:11 +00:00
boot Removed vestiges of BAD144 support. 1999-12-23 17:52:00 +00:00
conf Update config rules for making {linux|svr4}_assym.h 1999-12-23 21:52:17 +00:00
eisa Remove the 'ivars' arguement to device_add_child() and 1999-12-03 08:41:24 +00:00
i386 Fixed races accessing the RTC. The races apparently caused 1999-12-25 15:30:31 +00:00
ibcs2 Introduce NDFREE (and remove VOP_ABORTOP) 1999-12-15 23:02:35 +00:00
include update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
isa Fixed races accessing the RTC. The races apparently caused 1999-12-25 15:30:31 +00:00
linux Use genassym(1) and <sys/assym.h> to generate assembler symbols. 1999-12-23 19:59:47 +00:00
pci Don't use a bogus bus number for Ross host-pci bridges. 1999-12-05 18:41:34 +00:00
svr4 Use genassym(1) and <sys/assym.h> to generate assembler symbols. 1999-12-23 21:19:32 +00:00
Makefile $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00