CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected] 2022/09/12 04:58:05

Modified files:
        sys/dev/acpi   : acpihpet.c 

Log message:
acpihpet(4): acpihpet_delay: only use lower 32 bits of counter

We can't use acpihpet_r() to implement acpihpet_delay().  Even if we
made acpihpet_r() atomic on amd64, i386 would still be incapable of
doing atomic 8-byte reads.  As-is, the code does a split read on all
platforms, which may or may not already be causing problems with TSC
calibration:

https://marc.info/?l=openbsd-tech&m=166220561709496&w=2

Switch from acpihpet_r() to bus_space_read_4() and only use the lower
32 bits of the counter.  This makes acpihpet_delay() slightly larger,
but unless we want two acpihpet_delay() implementations we have no
choice.

Link: https://marc.info/?l=openbsd-tech&m=166165347220077&w=2

ok jsg@

Reply via email to