diff options
author | raj <raj@FreeBSD.org> | 2013-08-19 16:16:49 +0000 |
---|---|---|
committer | raj <raj@FreeBSD.org> | 2013-08-19 16:16:49 +0000 |
commit | f55114b9af96687e75e50b5d375451d824b6a68f (patch) | |
tree | 37ec5ede5a40b7f89502b603eb8e9b4e08c423e1 /sys/arm | |
parent | 23a66842db3f100d9fc1b2002c42860a0017580a (diff) | |
download | FreeBSD-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.c | 2 | ||||
-rw-r--r-- | sys/arm/include/pmap.h | 2 |
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; }; |