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,