svn commit: r242194 - projects/bhyve/sys/dev/bvm

Neel Natu neel at FreeBSD.org
Sat Oct 27 22:54:24 UTC 2012


Author: neel
Date: Sat Oct 27 22:54:23 2012
New Revision: 242194
URL: http://svn.freebsd.org/changeset/base/242194

Log:
  Probe for existence of the bvm debug port instead of just assuming that it is
  always present.
  
  Suggested by:	grehan
  Obtained from:	NetApp

Modified:
  projects/bhyve/sys/dev/bvm/bvm_dbg.c

Modified: projects/bhyve/sys/dev/bvm/bvm_dbg.c
==============================================================================
--- projects/bhyve/sys/dev/bvm/bvm_dbg.c	Sat Oct 27 22:43:30 2012	(r242193)
+++ projects/bhyve/sys/dev/bvm/bvm_dbg.c	Sat Oct 27 22:54:23 2012	(r242194)
@@ -49,6 +49,8 @@ GDB_DBGPORT(bvm, bvm_dbg_probe, bvm_dbg_
 #define	BVM_DBG_PORT	0x224
 static int bvm_dbg_port = BVM_DBG_PORT;
 
+#define BVM_DBG_SIG	('B' << 8 | 'V')
+
 static int
 bvm_dbg_probe(void)
 {
@@ -56,17 +58,21 @@ bvm_dbg_probe(void)
 
 	disabled = 0;
 	resource_int_value("bvmdbg", 0, "disabled", &disabled);
-	if (disabled)
-		return (-1);
 
-	if (resource_int_value("bvmdbg", 0, "port", &port) == 0)
-		bvm_dbg_port = port;
+	if (!disabled) {
+		if (resource_int_value("bvmdbg", 0, "port", &port) == 0)
+			bvm_dbg_port = port;
+
+		if (inw(bvm_dbg_port) == BVM_DBG_SIG) {
+			/*
+			 * Return a higher priority than 0 to override other
+			 * gdb dbgport providers that may be present (e.g. uart)
+			 */
+			return (1);
+		}
+	}
 
-	/*
-	 * Return a higher priority than 0 to override other
-	 * gdb dbgport providers that may be present (e.g. uart)
-	 */
-	return (1);
+	return (-1);
 }
 
 static void


More information about the svn-src-projects mailing list