svn commit: r252336 - head/usr.sbin/bhyve

Peter Grehan grehan at FreeBSD.org
Fri Jun 28 06:25:04 UTC 2013


Author: grehan
Date: Fri Jun 28 06:25:04 2013
New Revision: 252336
URL: http://svnweb.freebsd.org/changeset/base/252336

Log:
  Allow 8259 registers to be read. This is a transient condition
  during Linux boot.
  
  Submitted by:	tycho nightingale at pluribusnetworks com
  Reviewed by:	neel

Modified:
  head/usr.sbin/bhyve/atpic.c

Modified: head/usr.sbin/bhyve/atpic.c
==============================================================================
--- head/usr.sbin/bhyve/atpic.c	Fri Jun 28 06:05:33 2013	(r252335)
+++ head/usr.sbin/bhyve/atpic.c	Fri Jun 28 06:25:04 2013	(r252336)
@@ -37,13 +37,6 @@ __FBSDID("$FreeBSD$");
 
 #include "inout.h"
 
-/*
- * FreeBSD only writes to the 8259 interrupt controllers to put them in a
- * shutdown state.
- *
- * So, we just ignore the writes.
- */
-
 #define	IO_ICU1		0x20
 #define	IO_ICU2		0xA0
 #define	ICU_IMR_OFFSET	1
@@ -55,8 +48,14 @@ atpic_handler(struct vmctx *ctx, int vcp
 	if (bytes != 1)
 		return (-1);
 
-	if (in)
-		return (-1);
+	if (in) {
+		if (port & ICU_IMR_OFFSET) {
+			/* all interrupts masked */
+			*eax = 0xff;
+		} else {
+			*eax = 0x00;
+		}
+	}
 
 	/* Pretend all writes to the 8259 are alright */
 	return (0);


More information about the svn-src-all mailing list