Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/arm/arm32 In pmap_enter only flush the TLB if reall...



details:   https://anonhg.NetBSD.org/src/rev/fb87d08e07f7
branches:  trunk
changeset: 803671:fb87d08e07f7
user:      skrll <skrll%NetBSD.org@localhost>
date:      Fri Nov 07 12:43:36 2014 +0000

description:
In pmap_enter only flush the TLB if really necessary

diffstat:

 sys/arch/arm/arm32/pmap.c |  9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diffs (30 lines):

diff -r be07590d9bdb -r fb87d08e07f7 sys/arch/arm/arm32/pmap.c
--- a/sys/arch/arm/arm32/pmap.c Fri Nov 07 12:42:27 2014 +0000
+++ b/sys/arch/arm/arm32/pmap.c Fri Nov 07 12:43:36 2014 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: pmap.c,v 1.309 2014/11/05 09:13:16 skrll Exp $ */
+/*     $NetBSD: pmap.c,v 1.310 2014/11/07 12:43:36 skrll Exp $ */
 
 /*
  * Copyright 2003 Wasabi Systems, Inc.
@@ -215,7 +215,7 @@
 
 #include <arm/locore.h>
 
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.309 2014/11/05 09:13:16 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.310 2014/11/07 12:43:36 skrll Exp $");
 
 //#define PMAP_DEBUG
 #ifdef PMAP_DEBUG
@@ -3316,8 +3316,9 @@
        if (npte != opte) {
                l2pte_reset(ptep);
                PTE_SYNC(ptep);
-               pmap_tlb_flush_SE(pm, va, oflags);
-
+               if (l2pte_valid_p(opte)) {
+                       pmap_tlb_flush_SE(pm, va, oflags);
+               }
                l2pte_set(ptep, npte, 0);
                PTE_SYNC(ptep);
 #ifndef ARM_MMU_EXTENDED



Home | Main Index | Thread Index | Old Index