summaryrefslogtreecommitdiff
path: root/usr.sbin
diff options
context:
space:
mode:
authorMike Larkin <mlarkin@cvs.openbsd.org>2016-03-13 02:37:30 +0000
committerMike Larkin <mlarkin@cvs.openbsd.org>2016-03-13 02:37:30 +0000
commitef5c71e150aa2719c69e3a042cd6e75676199911 (patch)
tree66df37ac0269bdf13e7908c036455254f350799a /usr.sbin
parent6b6c20daf573d5bf1ea13ff899c5b18a679d07c4 (diff)
Rework an erroneous warning message about 16 bit i8253 PIT counter I/O.
The unimplemented mode is MSB/LSB (8 bit), not 16 bit mode.
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/vmd/vmm.c26
1 files changed, 9 insertions, 17 deletions
diff --git a/usr.sbin/vmd/vmm.c b/usr.sbin/vmd/vmm.c
index f58069fd3b4..1d0ef1613ee 100644
--- a/usr.sbin/vmd/vmm.c
+++ b/usr.sbin/vmd/vmm.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: vmm.c,v 1.21 2016/02/16 19:00:16 stefan Exp $ */
+/* $OpenBSD: vmm.c,v 1.22 2016/03/13 02:37:29 mlarkin Exp $ */
/*
* Copyright (c) 2015 Mike Larkin <mlarkin@openbsd.org>
@@ -79,7 +79,7 @@
*/
#define TIMER_BASE 0x40
#define TIMER_CTRL 0x43 /* 8253 Timer #1 */
-#define NS_PER_TICK (1000000000 / TIMER_FREQ)
+#define NS_PER_TICK (1000000000 / TIMER_FREQ)
/* i8253 registers */
struct i8253_counter {
@@ -909,19 +909,13 @@ vcpu_exit_i8253(struct vm_run_params *vrp)
goto ret;
}
- rw = vei->vei.vei_data &
- (TIMER_LATCH | TIMER_LSB |
- TIMER_MSB | TIMER_16BIT);
-
- if (rw == TIMER_16BIT) {
- /*
- * XXX this seems to be used on occasion, needs
- * to be implemented
- */
- log_warnx("%s: i8253 PIT: 16 bit "
- "counter I/O not supported",
- __progname);
- goto ret;
+ rw = vei->vei.vei_data & (TIMER_LATCH | TIMER_16BIT);
+
+ if ((rw & TIMER_16BIT) == TIMER_LSB ||
+ (rw & TIMER_16BIT) == TIMER_MSB) {
+ log_warnx("%s: i8253 PIT: invalid timer mode "
+ "0x%x selected", __func__,
+ (rw & TIMER_16BIT));
}
/*
@@ -956,8 +950,6 @@ vcpu_exit_i8253(struct vm_run_params *vrp)
goto ret;
}
- log_warnx("%s: i8253 PIT: unsupported rw mode "
- "%d", __progname, rw);
goto ret;
} else {
/* XXX should this return 0xff as the data read? */