Just taking a walk through apm.c ...
I notice that set_time() calls get_cmos_time() with interrupts
disabled, whereas get_time_diff calls it with interrupts
enabled.
get_cmos_time is in time.c . It does a bunch of CMOS_READs
without taking rtc_lock.
Methinks that the
save_flags(flags); ...; cli(); ...; restore_flags(flags);
constructs in apm.c need some attention.
Thomas
> get_cmos_time is in time.c . It does a bunch of CMOS_READs
> without taking rtc_lock.
>
> Methinks that the
> save_flags(flags); ...; cli(); ...; restore_flags(flags);
> constructs in apm.c need some attention.
Well spotted. Yes the CMOS handling does still seem a bit random in places