mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-18 15:30:21 +00:00
0f19e631e2
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 |
||
---|---|---|
.. | ||
ic | ||
atkbd_isa.c | ||
atkbdc_isa.c | ||
atrtc.c | ||
fd.c | ||
fdc.h | ||
fdreg.h | ||
isa_common.c | ||
isa_common.h | ||
isa_if.m | ||
isahint.c | ||
isareg.h | ||
isavar.h | ||
joy.c | ||
pnp.c | ||
pnpparse.c | ||
pnpreg.h | ||
pnpvar.h | ||
ppc.c | ||
ppcreg.h | ||
psm.c | ||
rtc.h | ||
sio.c | ||
sioreg.h | ||
syscons_isa.c | ||
vga_isa.c |