summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2014-06-26 19:19:06 +0000
committerjhb <jhb@FreeBSD.org>2014-06-26 19:19:06 +0000
commitb9c113aaddcaca13df2468957f03cbb8614c0792 (patch)
treede000da56ed626d362f779a79a18533b19f4fe07 /usr.sbin
parent42ff249abc485cdcc25d40fd2fee625ba32cbfe3 (diff)
downloadFreeBSD-src-b9c113aaddcaca13df2468957f03cbb8614c0792.zip
FreeBSD-src-b9c113aaddcaca13df2468957f03cbb8614c0792.tar.gz
MFC 264277:
Handle single-byte reads from the bvmcons port (0x220) by returning 0xff. Some guests may attempt to read from this port to identify psuedo-PNP ISA devices. (The ie(4) driver in FreeBSD/i386 is one example.)
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/bhyve/consport.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/usr.sbin/bhyve/consport.c b/usr.sbin/bhyve/consport.c
index b9eb4ce..4074e95 100644
--- a/usr.sbin/bhyve/consport.c
+++ b/usr.sbin/bhyve/consport.c
@@ -110,6 +110,15 @@ console_handler(struct vmctx *ctx, int vcpu, int in, int port, int bytes,
return (0);
}
+ /*
+ * Guests might probe this port to look for old ISA devices
+ * using single-byte reads. Return 0xff for those.
+ */
+ if (bytes == 1 && in) {
+ *eax = 0xff;
+ return (0);
+ }
+
if (bytes != 4)
return (-1);
OpenPOWER on IntegriCloud