summaryrefslogtreecommitdiffstats
path: root/sys/arm
diff options
context:
space:
mode:
authorraj <raj@FreeBSD.org>2013-08-19 16:16:49 +0000
committerraj <raj@FreeBSD.org>2013-08-19 16:16:49 +0000
commitf55114b9af96687e75e50b5d375451d824b6a68f (patch)
tree37ec5ede5a40b7f89502b603eb8e9b4e08c423e1 /sys/arm
parent23a66842db3f100d9fc1b2002c42860a0017580a (diff)
downloadFreeBSD-src-f55114b9af96687e75e50b5d375451d824b6a68f.zip
FreeBSD-src-f55114b9af96687e75e50b5d375451d824b6a68f.tar.gz
Do not use pv_kva on ARMv6/v7 and save some space on each vm_page. It's only
relevant for older ARM variants (with virtual cache). Submitted by: Zbigniew Bodek <zbb@semihalf.com> Reviewed by: gber Sponsored by: The FreeBSD Foundation, Semihalf
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/arm/pmap-v6.c2
-rw-r--r--sys/arm/include/pmap.h2
2 files changed, 3 insertions, 1 deletions
diff --git a/sys/arm/arm/pmap-v6.c b/sys/arm/arm/pmap-v6.c
index 813df55..cc7c2db 100644
--- a/sys/arm/arm/pmap-v6.c
+++ b/sys/arm/arm/pmap-v6.c
@@ -4365,6 +4365,6 @@ pmap_page_set_memattr(vm_page_t m, vm_memattr_t ma)
* uncacheable, being careful to sync caches and PTEs (and maybe
* invalidate TLB?) for any current mapping it modifies.
*/
- if (m->md.pv_kva != 0 || TAILQ_FIRST(&m->md.pv_list) != NULL)
+ if (TAILQ_FIRST(&m->md.pv_list) != NULL)
panic("Can't change memattr on page with existing mappings");
}
diff --git a/sys/arm/include/pmap.h b/sys/arm/include/pmap.h
index b416169..780ed9b 100644
--- a/sys/arm/include/pmap.h
+++ b/sys/arm/include/pmap.h
@@ -121,7 +121,9 @@ struct pv_chunk;
struct md_page {
int pvh_attrs;
vm_memattr_t pv_memattr;
+#if (ARM_MMU_V6 + ARM_MMU_V7) == 0
vm_offset_t pv_kva; /* first kernel VA mapping */
+#endif
TAILQ_HEAD(,pv_entry) pv_list;
};
OpenPOWER on IntegriCloud