Module Name:    src
Committed By:   skrll
Date:           Fri Nov 13 08:04:21 UTC 2015

Modified Files:
        src/sys/arch/arm/arm32: pmap.c

Log Message:
Tweak the KASSERTs in pmap_update in the ARM_MMU_EXTENDED case - Lazy
updating is not done on the kernel pmap.

PR port-arm/50420: curcpu()->ci_pmap_cur != pm || pm->pm_pai[0].pai_asid == 
curcpu()->ci_pmap_asid_cur" failed


To generate a diff of this commit:
cvs rdiff -u -r1.329 -r1.330 src/sys/arch/arm/arm32/pmap.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/arm32/pmap.c
diff -u src/sys/arch/arm/arm32/pmap.c:1.329 src/sys/arch/arm/arm32/pmap.c:1.330
--- src/sys/arch/arm/arm32/pmap.c:1.329	Fri Nov 13 07:55:18 2015
+++ src/sys/arch/arm/arm32/pmap.c	Fri Nov 13 08:04:21 2015
@@ -1,4 +1,4 @@
-/*	$NetBSD: pmap.c,v 1.329 2015/11/13 07:55:18 skrll Exp $	*/
+/*	$NetBSD: pmap.c,v 1.330 2015/11/13 08:04:21 skrll Exp $	*/
 
 /*
  * Copyright 2003 Wasabi Systems, Inc.
@@ -217,7 +217,7 @@
 
 #include <arm/locore.h>
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.329 2015/11/13 07:55:18 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.330 2015/11/13 08:04:21 skrll Exp $");
 
 //#define PMAP_DEBUG
 #ifdef PMAP_DEBUG
@@ -5009,6 +5009,8 @@ pmap_update(pmap_t pm)
 
 	if (pm->pm_remove_all) {
 #ifdef ARM_MMU_EXTENDED
+		KASSERT(pm != pmap_kernel());
+
 		KASSERTMSG(curcpu()->ci_pmap_cur != pm
 		    || pm->pm_pai[0].pai_asid == curcpu()->ci_pmap_asid_cur,
 		    "pmap/asid %p/%#x != %s cur pmap/asid %p/%#x", pm,
@@ -5042,8 +5044,8 @@ pmap_update(pmap_t pm)
 		PMAP_COUNT(shootdown_ipis);
 	}
 #endif
-
-	KASSERTMSG(curcpu()->ci_pmap_cur != pm
+	KASSERTMSG(pm == pmap_kernel()
+	    || curcpu()->ci_pmap_cur != pm
 	    || pm->pm_pai[0].pai_asid == curcpu()->ci_pmap_asid_cur,
 	    "pmap/asid %p/%#x != %s cur pmap/asid %p/%#x", pm,
 	    pm->pm_pai[0].pai_asid, curcpu()->ci_data.cpu_name,

Reply via email to