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