summaryrefslogtreecommitdiffstats
path: root/etc
diff options
context:
space:
mode:
authorneel <neel@FreeBSD.org>2010-08-05 04:59:54 +0000
committerneel <neel@FreeBSD.org>2010-08-05 04:59:54 +0000
commitcd9a29536ada23d04ba96d228232cc40fbd1c43b (patch)
treeca9890e2ed549337f4fc588e892e0e216b9b9f95 /etc
parent8ab9713b03325ace307a87ca92e91f83e1e682fc (diff)
downloadFreeBSD-src-cd9a29536ada23d04ba96d228232cc40fbd1c43b.zip
FreeBSD-src-cd9a29536ada23d04ba96d228232cc40fbd1c43b.tar.gz
Fix a race between clock_intr() and tick_ticker() when updating
'counter_upper' and 'counter_lower_last'. The race exists because interrupts are enabled even though tick_ticker() executes in a critical section. Fix a bug in clock_intr() in how it updates the cached values of 'counter_upper' and 'counter_lower_last'. They are updated only when the COUNT register rolls over. More interestingly it will *never* update the cached values if 'counter_lower_last' happens to be zero. Get rid of superfluous critical section in clock_intr(). There is no reason to do this because clock_intr() executes in hard interrupt context. Switch back to using 'tick_ticker()' as the cpu ticker for Sibyte. Reviewed by: jmallett, mav
Diffstat (limited to 'etc')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud