Module Name: src
Committed By: bouyer
Date: Thu Jan 19 22:00:57 UTC 2012
Modified Files:
src/sys/arch/amd64/include: pmap.h
src/sys/arch/i386/include: pmap.h
Log Message:
pmap_pte_set() is not supposed to be atomic, so only raise IPL, no need to
take pte_lock
To generate a diff of this commit:
cvs rdiff -u -r1.30 -r1.31 src/sys/arch/amd64/include/pmap.h
cvs rdiff -u -r1.113 -r1.114 src/sys/arch/i386/include/pmap.h
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/amd64/include/pmap.h
diff -u src/sys/arch/amd64/include/pmap.h:1.30 src/sys/arch/amd64/include/pmap.h:1.31
--- src/sys/arch/amd64/include/pmap.h:1.30 Sun Jan 15 16:48:31 2012
+++ src/sys/arch/amd64/include/pmap.h Thu Jan 19 22:00:56 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.h,v 1.30 2012/01/15 16:48:31 cherry Exp $ */
+/* $NetBSD: pmap.h,v 1.31 2012/01/19 22:00:56 bouyer Exp $ */
/*
* Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -278,9 +278,9 @@ pmap_pte2pa(pt_entry_t pte)
static __inline void
pmap_pte_set(pt_entry_t *pte, pt_entry_t npte)
{
- mutex_enter(&pte_lock);
+ int s = splvm();
xpq_queue_pte_update(xpmap_ptetomach(pte), npte);
- mutex_exit(&pte_lock);
+ splx(s);
}
static __inline pt_entry_t
Index: src/sys/arch/i386/include/pmap.h
diff -u src/sys/arch/i386/include/pmap.h:1.113 src/sys/arch/i386/include/pmap.h:1.114
--- src/sys/arch/i386/include/pmap.h:1.113 Mon Jan 9 13:04:13 2012
+++ src/sys/arch/i386/include/pmap.h Thu Jan 19 22:00:57 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.h,v 1.113 2012/01/09 13:04:13 cherry Exp $ */
+/* $NetBSD: pmap.h,v 1.114 2012/01/19 22:00:57 bouyer Exp $ */
/*
* Copyright (c) 1997 Charles D. Cranor and Washington University.
@@ -370,9 +370,9 @@ pmap_pte2pa(pt_entry_t pte)
static __inline void
pmap_pte_set(pt_entry_t *pte, pt_entry_t npte)
{
- mutex_enter(&pte_lock);
+ int s = splvm();
xpq_queue_pte_update(xpmap_ptetomach(pte), npte);
- mutex_exit(&pte_lock);
+ splx(s);
}
static __inline pt_entry_t