Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Nov 2014 14:59:46 +0000 (UTC)
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r274382 - head/sys/amd64/include
Message-ID:  <201411111459.sABExkAU035735@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: emaste
Date: Tue Nov 11 14:59:46 2014
New Revision: 274382
URL: https://svnweb.freebsd.org/changeset/base/274382

Log:
  Add workaround for vt efifb's early use of PHYS_TO_DMAP
  
  In vt_efifb_init the framebuffer's physaddr is passed to PHYS_TO_DMAP
  before the DMAP is setup. The result is not actually accessed until
  after the mapping is setup, though. Loosen the assertion in PHYS_TO_DMAP
  for now, to allow use when dmaplimit == 0.
  
  Reviewed by:	kib
  Sponsored by:	The FreeBSD Foundation
  Differential Revision:	https://reviews.freebsd.org/D1142

Modified:
  head/sys/amd64/include/vmparam.h

Modified: head/sys/amd64/include/vmparam.h
==============================================================================
--- head/sys/amd64/include/vmparam.h	Tue Nov 11 14:30:35 2014	(r274381)
+++ head/sys/amd64/include/vmparam.h	Tue Nov 11 14:59:46 2014	(r274382)
@@ -175,8 +175,14 @@
 #define	VM_MAX_ADDRESS		UPT_MAX_ADDRESS
 #define	VM_MIN_ADDRESS		(0)
 
+/*
+ * XXX Allowing dmaplimit == 0 is a temporary workaround for vt(4) efifb's
+ * early use of PHYS_TO_DMAP before the mapping is actually setup. This works
+ * because the result is not actually accessed until later, but the early
+ * vt fb startup needs to be reworked.
+ */
 #define	PHYS_TO_DMAP(x)	({						\
-	KASSERT((x) < dmaplimit,					\
+	KASSERT(dmaplimit == 0 || (x) < dmaplimit,			\
 	    ("physical address %#jx not covered by the DMAP",		\
 	    (uintmax_t)x));						\
 	(x) | DMAP_MIN_ADDRESS; })



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201411111459.sABExkAU035735>