diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-10 19:45:56 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-02-10 19:45:56 -0500 |
commit | 992de5a8eca7cbd3215e3eb2c439b2c11582a58b (patch) | |
tree | 863988f84c1dd57a02fa337ecbce49263a3b9511 /arch/parisc/include/asm/pgtable.h | |
parent | b2718bffb4088faf13092db30c1ebf088ddee52e (diff) | |
parent | d5b3cf7139b8770af4ed8bb36a1ab9d290ac39e9 (diff) |
Merge branch 'akpm' (patches from Andrew)
Merge misc updates from Andrew Morton:
"Bite-sized chunks this time, to avoid the MTA ratelimiting woes.
- fs/notify updates
- ocfs2
- some of MM"
That laconic "some MM" is mainly the removal of remap_file_pages(),
which is a big simplification of the VM, and which gets rid of a *lot*
of random cruft and special cases because we no longer support the
non-linear mappings that it used.
From a user interface perspective, nothing has changed, because the
remap_file_pages() syscall still exists, it's just done by emulating the
old behavior by creating a lot of individual small mappings instead of
one non-linear one.
The emulation is slower than the old "native" non-linear mappings, but
nobody really uses or cares about remap_file_pages(), and simplifying
the VM is a big advantage.
* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (78 commits)
memcg: zap memcg_slab_caches and memcg_slab_mutex
memcg: zap memcg_name argument of memcg_create_kmem_cache
memcg: zap __memcg_{charge,uncharge}_slab
mm/page_alloc.c: place zone_id check before VM_BUG_ON_PAGE check
mm: hugetlb: fix type of hugetlb_treat_as_movable variable
mm, hugetlb: remove unnecessary lower bound on sysctl handlers"?
mm: memory: merge shared-writable dirtying branches in do_wp_page()
mm: memory: remove ->vm_file check on shared writable vmas
xtensa: drop _PAGE_FILE and pte_file()-related helpers
x86: drop _PAGE_FILE and pte_file()-related helpers
unicore32: drop pte_file()-related helpers
um: drop _PAGE_FILE and pte_file()-related helpers
tile: drop pte_file()-related helpers
sparc: drop pte_file()-related helpers
sh: drop _PAGE_FILE and pte_file()-related helpers
score: drop _PAGE_FILE and pte_file()-related helpers
s390: drop pte_file()-related helpers
parisc: drop _PAGE_FILE and pte_file()-related helpers
openrisc: drop _PAGE_FILE and pte_file()-related helpers
nios2: drop _PAGE_FILE and pte_file()-related helpers
...
Diffstat (limited to 'arch/parisc/include/asm/pgtable.h')
-rw-r--r-- | arch/parisc/include/asm/pgtable.h | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/arch/parisc/include/asm/pgtable.h b/arch/parisc/include/asm/pgtable.h index 22b89d1edba7..1d49a4a7749b 100644 --- a/arch/parisc/include/asm/pgtable.h +++ b/arch/parisc/include/asm/pgtable.h | |||
@@ -146,7 +146,6 @@ extern void purge_tlb_entries(struct mm_struct *, unsigned long); | |||
146 | #define _PAGE_GATEWAY_BIT 28 /* (0x008) privilege promotion allowed */ | 146 | #define _PAGE_GATEWAY_BIT 28 /* (0x008) privilege promotion allowed */ |
147 | #define _PAGE_DMB_BIT 27 /* (0x010) Data Memory Break enable (B bit) */ | 147 | #define _PAGE_DMB_BIT 27 /* (0x010) Data Memory Break enable (B bit) */ |
148 | #define _PAGE_DIRTY_BIT 26 /* (0x020) Page Dirty (D bit) */ | 148 | #define _PAGE_DIRTY_BIT 26 /* (0x020) Page Dirty (D bit) */ |
149 | #define _PAGE_FILE_BIT _PAGE_DIRTY_BIT /* overload this bit */ | ||
150 | #define _PAGE_REFTRAP_BIT 25 /* (0x040) Page Ref. Trap enable (T bit) */ | 149 | #define _PAGE_REFTRAP_BIT 25 /* (0x040) Page Ref. Trap enable (T bit) */ |
151 | #define _PAGE_NO_CACHE_BIT 24 /* (0x080) Uncached Page (U bit) */ | 150 | #define _PAGE_NO_CACHE_BIT 24 /* (0x080) Uncached Page (U bit) */ |
152 | #define _PAGE_ACCESSED_BIT 23 /* (0x100) Software: Page Accessed */ | 151 | #define _PAGE_ACCESSED_BIT 23 /* (0x100) Software: Page Accessed */ |
@@ -167,13 +166,6 @@ extern void purge_tlb_entries(struct mm_struct *, unsigned long); | |||
167 | /* PFN_PTE_SHIFT defines the shift of a PTE value to access the PFN field */ | 166 | /* PFN_PTE_SHIFT defines the shift of a PTE value to access the PFN field */ |
168 | #define PFN_PTE_SHIFT 12 | 167 | #define PFN_PTE_SHIFT 12 |
169 | 168 | ||
170 | |||
171 | /* this is how many bits may be used by the file functions */ | ||
172 | #define PTE_FILE_MAX_BITS (BITS_PER_LONG - PTE_SHIFT) | ||
173 | |||
174 | #define pte_to_pgoff(pte) (pte_val(pte) >> PTE_SHIFT) | ||
175 | #define pgoff_to_pte(off) ((pte_t) { ((off) << PTE_SHIFT) | _PAGE_FILE }) | ||
176 | |||
177 | #define _PAGE_READ (1 << xlate_pabit(_PAGE_READ_BIT)) | 169 | #define _PAGE_READ (1 << xlate_pabit(_PAGE_READ_BIT)) |
178 | #define _PAGE_WRITE (1 << xlate_pabit(_PAGE_WRITE_BIT)) | 170 | #define _PAGE_WRITE (1 << xlate_pabit(_PAGE_WRITE_BIT)) |
179 | #define _PAGE_RW (_PAGE_READ | _PAGE_WRITE) | 171 | #define _PAGE_RW (_PAGE_READ | _PAGE_WRITE) |
@@ -186,7 +178,6 @@ extern void purge_tlb_entries(struct mm_struct *, unsigned long); | |||
186 | #define _PAGE_ACCESSED (1 << xlate_pabit(_PAGE_ACCESSED_BIT)) | 178 | #define _PAGE_ACCESSED (1 << xlate_pabit(_PAGE_ACCESSED_BIT)) |
187 | #define _PAGE_PRESENT (1 << xlate_pabit(_PAGE_PRESENT_BIT)) | 179 | #define _PAGE_PRESENT (1 << xlate_pabit(_PAGE_PRESENT_BIT)) |
188 | #define _PAGE_USER (1 << xlate_pabit(_PAGE_USER_BIT)) | 180 | #define _PAGE_USER (1 << xlate_pabit(_PAGE_USER_BIT)) |
189 | #define _PAGE_FILE (1 << xlate_pabit(_PAGE_FILE_BIT)) | ||
190 | 181 | ||
191 | #define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | _PAGE_DIRTY | _PAGE_ACCESSED) | 182 | #define _PAGE_TABLE (_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | _PAGE_DIRTY | _PAGE_ACCESSED) |
192 | #define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY) | 183 | #define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_DIRTY) |
@@ -344,7 +335,6 @@ static inline void pgd_clear(pgd_t * pgdp) { } | |||
344 | static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; } | 335 | static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_DIRTY; } |
345 | static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } | 336 | static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } |
346 | static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; } | 337 | static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; } |
347 | static inline int pte_file(pte_t pte) { return pte_val(pte) & _PAGE_FILE; } | ||
348 | static inline int pte_special(pte_t pte) { return 0; } | 338 | static inline int pte_special(pte_t pte) { return 0; } |
349 | 339 | ||
350 | static inline pte_t pte_mkclean(pte_t pte) { pte_val(pte) &= ~_PAGE_DIRTY; return pte; } | 340 | static inline pte_t pte_mkclean(pte_t pte) { pte_val(pte) &= ~_PAGE_DIRTY; return pte; } |