summaryrefslogtreecommitdiffstats
path: root/sys/x86/isa
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2010-07-20 15:48:29 +0000
committermav <mav@FreeBSD.org>2010-07-20 15:48:29 +0000
commit0ea74c96a2f40bc01acfd1e4eaff94f73860e331 (patch)
tree2c5e8d78cfbbe53e780bacd903f0ccd75cd9597a /sys/x86/isa
parente1bb40d4c52c58d39b2ef9cf56223c4419e7bd99 (diff)
downloadFreeBSD-src-0ea74c96a2f40bc01acfd1e4eaff94f73860e331.zip
FreeBSD-src-0ea74c96a2f40bc01acfd1e4eaff94f73860e331.tar.gz
Fix several un-/signedness bugs of r210290 and r210293. Add one more check.
Diffstat (limited to 'sys/x86/isa')
-rw-r--r--sys/x86/isa/atrtc.c4
-rw-r--r--sys/x86/isa/clock.c5
2 files changed, 5 insertions, 4 deletions
diff --git a/sys/x86/isa/atrtc.c b/sys/x86/isa/atrtc.c
index b01e933..929f7e7 100644
--- a/sys/x86/isa/atrtc.c
+++ b/sys/x86/isa/atrtc.c
@@ -280,9 +280,9 @@ atrtc_attach(device_t dev)
sc->et.et_quality = 0;
sc->et.et_frequency = 32768;
sc->et.et_min_period.sec = 0;
- sc->et.et_min_period.frac = 0x0008LL << 48;
+ sc->et.et_min_period.frac = 0x0008LLU << 48;
sc->et.et_max_period.sec = 0;
- sc->et.et_max_period.frac = 0x8000LL << 48;
+ sc->et.et_max_period.frac = 0x8000LLU << 48;
sc->et.et_start = rtc_start;
sc->et.et_stop = rtc_stop;
sc->et.et_priv = dev;
diff --git a/sys/x86/isa/clock.c b/sys/x86/isa/clock.c
index 62869a6..2c0e788 100644
--- a/sys/x86/isa/clock.c
+++ b/sys/x86/isa/clock.c
@@ -666,10 +666,11 @@ attimer_attach(device_t dev)
sc->et.et_quality = 100;
sc->et.et_frequency = i8254_freq;
sc->et.et_min_period.sec = 0;
- sc->et.et_min_period.frac = ((1LL << 62) / i8254_freq) << 2;
+ sc->et.et_min_period.frac =
+ ((0x0002LLU << 48) / i8254_freq) << 16;
sc->et.et_max_period.sec = 0xffff / i8254_freq;
sc->et.et_max_period.frac =
- ((0xffffLL << 48) / i8254_freq) << 16;
+ ((0xfffeLLU << 48) / i8254_freq) << 16;
sc->et.et_start = attimer_start;
sc->et.et_stop = attimer_stop;
sc->et.et_priv = dev;
OpenPOWER on IntegriCloud