svn commit: r353905 - head/sys/amd64/amd64

Mateusz Guzik mjg at FreeBSD.org
Tue Oct 22 22:54:42 UTC 2019


Author: mjg
Date: Tue Oct 22 22:54:41 2019
New Revision: 353905
URL: https://svnweb.freebsd.org/changeset/base/353905

Log:
  amd64 pmap: fixup invlgen lookup for fictitious mappings
  
  Similarly to r353438, use dummy entry.
  
  Reported and tested by:	Neel Chauhan
  Sponsored by:	The FreeBSD Foundation

Modified:
  head/sys/amd64/amd64/pmap.c

Modified: head/sys/amd64/amd64/pmap.c
==============================================================================
--- head/sys/amd64/amd64/pmap.c	Tue Oct 22 22:52:53 2019	(r353904)
+++ head/sys/amd64/amd64/pmap.c	Tue Oct 22 22:54:41 2019	(r353905)
@@ -951,8 +951,16 @@ SYSCTL_LONG(_vm_pmap, OID_AUTO, invl_wait_slow, CTLFLA
 static u_long *
 pmap_delayed_invl_genp(vm_page_t m)
 {
+	vm_paddr_t pa;
+	u_long *gen;
 
-	return (&pa_to_pmdp(VM_PAGE_TO_PHYS(m))->pv_invl_gen);
+	pa = VM_PAGE_TO_PHYS(m);
+	if (__predict_false((pa) > pmap_last_pa))
+		gen = &pv_dummy_large.pv_invl_gen;
+	else
+		gen = &(pa_to_pmdp(pa)->pv_invl_gen);
+
+	return (gen);
 }
 #else
 static u_long *


More information about the svn-src-head mailing list