Module Name: src
Committed By: uebayasi
Date: Sat Oct 30 18:08:49 UTC 2010
Modified Files:
src/sys/arch/powerpc/oea: pmap.c
src/sys/arch/powerpc/powerpc: pmap_subr.c
Log Message:
Use VM_PAGE_TO_MD() to locate struct vm_page_md. No functional
changes.
To generate a diff of this commit:
cvs rdiff -u -r1.71 -r1.72 src/sys/arch/powerpc/oea/pmap.c
cvs rdiff -u -r1.22 -r1.23 src/sys/arch/powerpc/powerpc/pmap_subr.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/powerpc/oea/pmap.c
diff -u src/sys/arch/powerpc/oea/pmap.c:1.71 src/sys/arch/powerpc/oea/pmap.c:1.72
--- src/sys/arch/powerpc/oea/pmap.c:1.71 Thu Feb 25 23:31:47 2010
+++ src/sys/arch/powerpc/oea/pmap.c Sat Oct 30 18:08:48 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.c,v 1.71 2010/02/25 23:31:47 matt Exp $ */
+/* $NetBSD: pmap.c,v 1.72 2010/10/30 18:08:48 uebayasi Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -63,7 +63,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.71 2010/02/25 23:31:47 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap.c,v 1.72 2010/10/30 18:08:48 uebayasi Exp $");
#define PMAP_NOOPNAMES
@@ -91,6 +91,8 @@
#include <powerpc/oea/spr.h>
#include <powerpc/oea/sr_601.h>
+#define VM_PAGE_TO_MD(pg) (&(pg)->mdpage)
+
#ifdef ALTIVEC
int pmap_use_altivec;
#endif
@@ -690,38 +692,48 @@
pa_to_pvoh(paddr_t pa, struct vm_page **pg_p)
{
struct vm_page *pg;
+ struct vm_page_md *md;
pg = PHYS_TO_VM_PAGE(pa);
if (pg_p != NULL)
*pg_p = pg;
if (pg == NULL)
return &pmap_pvo_unmanaged;
- return &pg->mdpage.mdpg_pvoh;
+ md = VM_PAGE_TO_MD(pg);
+ return &md->mdpg_pvoh;
}
static inline struct pvo_head *
vm_page_to_pvoh(struct vm_page *pg)
{
- return &pg->mdpage.mdpg_pvoh;
+ struct vm_page_md * const md = VM_PAGE_TO_MD(pg);
+
+ return &md->mdpg_pvoh;
}
static inline void
pmap_attr_clear(struct vm_page *pg, int ptebit)
{
- pg->mdpage.mdpg_attrs &= ~ptebit;
+ struct vm_page_md * const md = VM_PAGE_TO_MD(pg);
+
+ md->mdpg_attrs &= ~ptebit;
}
static inline int
pmap_attr_fetch(struct vm_page *pg)
{
- return pg->mdpage.mdpg_attrs;
+ struct vm_page_md * const md = VM_PAGE_TO_MD(pg);
+
+ return md->mdpg_attrs;
}
static inline void
pmap_attr_save(struct vm_page *pg, int ptebit)
{
- pg->mdpage.mdpg_attrs |= ptebit;
+ struct vm_page_md * const md = VM_PAGE_TO_MD(pg);
+
+ md->mdpg_attrs |= ptebit;
}
static inline int
Index: src/sys/arch/powerpc/powerpc/pmap_subr.c
diff -u src/sys/arch/powerpc/powerpc/pmap_subr.c:1.22 src/sys/arch/powerpc/powerpc/pmap_subr.c:1.23
--- src/sys/arch/powerpc/powerpc/pmap_subr.c:1.22 Thu Jan 28 12:37:45 2010
+++ src/sys/arch/powerpc/powerpc/pmap_subr.c Sat Oct 30 18:08:48 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap_subr.c,v 1.22 2010/01/28 12:37:45 phx Exp $ */
+/* $NetBSD: pmap_subr.c,v 1.23 2010/10/30 18:08:48 uebayasi Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -29,7 +29,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap_subr.c,v 1.22 2010/01/28 12:37:45 phx Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap_subr.c,v 1.23 2010/10/30 18:08:48 uebayasi Exp $");
#include "opt_multiprocessor.h"
#include "opt_altivec.h"
@@ -51,6 +51,8 @@
#endif
#include <powerpc/psl.h>
+#define VM_PAGE_TO_MD(pg) (&(pg)->mdpage)
+
#define MFMSR() mfmsr()
#define MTMSR(psl) __asm volatile("sync; mtmsr %0; isync" :: "r"(psl))
@@ -292,14 +294,15 @@
* of this page since the page contents will have changed.
*/
struct vm_page *pg = PHYS_TO_VM_PAGE(pa);
+ struct vm_page_md * const md = VM_PAGE_TO_MD(pg);
KDASSERT(pg != NULL);
- KDASSERT(LIST_EMPTY(&pg->mdpage.mdpg_pvoh));
+ KDASSERT(LIST_EMPTY(&md->mdpg_pvoh));
#ifdef PMAPCOUNTERS
- if (pg->mdpage.mdpg_attrs & PTE_EXEC) {
+ if (md->mdpg_attrs & PTE_EXEC) {
PMAPCOUNT(exec_uncached_zero_page);
}
#endif
- pg->mdpage.mdpg_attrs &= ~PTE_EXEC;
+ md->mdpg_attrs &= ~PTE_EXEC;
}
#endif
@@ -372,14 +375,15 @@
* changed.
*/
struct vm_page *pg = PHYS_TO_VM_PAGE(dst);
+ struct vm_page_md * const md = VM_PAGE_TO_MD(pg);
KDASSERT(pg != NULL);
- KDASSERT(LIST_EMPTY(&pg->mdpage.mdpg_pvoh));
+ KDASSERT(LIST_EMPTY(&md->mdpg_pvoh));
#ifdef PMAPCOUNTERS
- if (pg->mdpage.mdpg_attrs & PTE_EXEC) {
+ if (md->mdpg_attrs & PTE_EXEC) {
PMAPCOUNT(exec_uncached_copy_page);
}
#endif
- pg->mdpage.mdpg_attrs &= ~PTE_EXEC;
+ md->mdpg_attrs &= ~PTE_EXEC;
}
#endif