aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/include/asm/pgtable-bits.h
diff options
context:
space:
mode:
authorPaul Burton <paul.burton@imgtec.com>2016-04-19 04:25:03 -0400
committerRalf Baechle <ralf@linux-mips.org>2016-05-13 09:30:25 -0400
commit780602d740fc0b723ea3a05bd7f35d2d7f31aa68 (patch)
treeeced5aa8deff316978714f31096fa323b160d824 /arch/mips/include/asm/pgtable-bits.h
parent694977006a7ba71e33e1f5df4f66ffd5ae19ec84 (diff)
MIPS: mm: Standardise on _PAGE_NO_READ, drop _PAGE_READ
Ever since support for RI/XI was implemented by commit 6dd9344cfc41 ("MIPS: Implement Read Inhibit/eXecute Inhibit") we've had a mixture of _PAGE_READ & _PAGE_NO_READ bits. Rather than keep both around, switch away from using _PAGE_READ to determine page presence & instead invert the use to _PAGE_NO_READ. Wherever we formerly had no definition for _PAGE_NO_READ, change what was _PAGE_READ to _PAGE_NO_READ. The end result is that we consistently use _PAGE_NO_READ to determine whether a page is readable, regardless of whether RI/XI is implemented. Signed-off-by: Paul Burton <paul.burton@imgtec.com> Reviewed-by: James Hogan <james.hogan@imgtec.com> Cc: David Daney <david.daney@cavium.com> Cc: Huacai Chen <chenhc@lemote.com> Cc: Maciej W. Rozycki <macro@linux-mips.org> Cc: Paul Gortmaker <paul.gortmaker@windriver.com> Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Alex Smith <alex.smith@imgtec.com> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/13116/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/include/asm/pgtable-bits.h')
-rw-r--r--arch/mips/include/asm/pgtable-bits.h19
1 files changed, 4 insertions, 15 deletions
diff --git a/arch/mips/include/asm/pgtable-bits.h b/arch/mips/include/asm/pgtable-bits.h
index c81fc1703c8a..5bc663d330d2 100644
--- a/arch/mips/include/asm/pgtable-bits.h
+++ b/arch/mips/include/asm/pgtable-bits.h
@@ -49,7 +49,6 @@ enum pgtable_bits {
49 49
50 /* Used only by software (masked out before writing EntryLo*) */ 50 /* Used only by software (masked out before writing EntryLo*) */
51 _PAGE_PRESENT_SHIFT = 24, 51 _PAGE_PRESENT_SHIFT = 24,
52 _PAGE_READ_SHIFT,
53 _PAGE_WRITE_SHIFT, 52 _PAGE_WRITE_SHIFT,
54 _PAGE_ACCESSED_SHIFT, 53 _PAGE_ACCESSED_SHIFT,
55 _PAGE_MODIFIED_SHIFT, 54 _PAGE_MODIFIED_SHIFT,
@@ -66,7 +65,7 @@ enum pgtable_bits {
66enum pgtable_bits { 65enum pgtable_bits {
67 /* Used only by software (writes to EntryLo ignored) */ 66 /* Used only by software (writes to EntryLo ignored) */
68 _PAGE_PRESENT_SHIFT, 67 _PAGE_PRESENT_SHIFT,
69 _PAGE_READ_SHIFT, 68 _PAGE_NO_READ_SHIFT,
70 _PAGE_WRITE_SHIFT, 69 _PAGE_WRITE_SHIFT,
71 _PAGE_ACCESSED_SHIFT, 70 _PAGE_ACCESSED_SHIFT,
72 _PAGE_MODIFIED_SHIFT, 71 _PAGE_MODIFIED_SHIFT,
@@ -85,7 +84,7 @@ enum pgtable_bits {
85 /* Used only by software (masked out before writing EntryLo*) */ 84 /* Used only by software (masked out before writing EntryLo*) */
86 _PAGE_PRESENT_SHIFT, 85 _PAGE_PRESENT_SHIFT,
87#if !defined(CONFIG_CPU_MIPSR2) && !defined(CONFIG_CPU_MIPSR6) 86#if !defined(CONFIG_CPU_MIPSR2) && !defined(CONFIG_CPU_MIPSR6)
88 _PAGE_READ_SHIFT, 87 _PAGE_NO_READ_SHIFT,
89#endif 88#endif
90 _PAGE_WRITE_SHIFT, 89 _PAGE_WRITE_SHIFT,
91 _PAGE_ACCESSED_SHIFT, 90 _PAGE_ACCESSED_SHIFT,
@@ -98,7 +97,6 @@ enum pgtable_bits {
98#if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6) 97#if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6)
99 _PAGE_NO_EXEC_SHIFT, 98 _PAGE_NO_EXEC_SHIFT,
100 _PAGE_NO_READ_SHIFT, 99 _PAGE_NO_READ_SHIFT,
101 _PAGE_READ_SHIFT = _PAGE_NO_READ_SHIFT,
102#endif 100#endif
103 _PAGE_GLOBAL_SHIFT, 101 _PAGE_GLOBAL_SHIFT,
104 _PAGE_VALID_SHIFT, 102 _PAGE_VALID_SHIFT,
@@ -110,11 +108,6 @@ enum pgtable_bits {
110 108
111/* Used only by software */ 109/* Used only by software */
112#define _PAGE_PRESENT (1 << _PAGE_PRESENT_SHIFT) 110#define _PAGE_PRESENT (1 << _PAGE_PRESENT_SHIFT)
113#if defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6)
114# define _PAGE_READ (cpu_has_rixi ? 0 : (1 << _PAGE_READ_SHIFT))
115#else
116# define _PAGE_READ (1 << _PAGE_READ_SHIFT)
117#endif
118#define _PAGE_WRITE (1 << _PAGE_WRITE_SHIFT) 111#define _PAGE_WRITE (1 << _PAGE_WRITE_SHIFT)
119#define _PAGE_ACCESSED (1 << _PAGE_ACCESSED_SHIFT) 112#define _PAGE_ACCESSED (1 << _PAGE_ACCESSED_SHIFT)
120#define _PAGE_MODIFIED (1 << _PAGE_MODIFIED_SHIFT) 113#define _PAGE_MODIFIED (1 << _PAGE_MODIFIED_SHIFT)
@@ -125,11 +118,10 @@ enum pgtable_bits {
125/* Used by TLB hardware (placed in EntryLo*) */ 118/* Used by TLB hardware (placed in EntryLo*) */
126#if (defined(CONFIG_PHYS_ADDR_T_64BIT) && defined(CONFIG_CPU_MIPS32)) 119#if (defined(CONFIG_PHYS_ADDR_T_64BIT) && defined(CONFIG_CPU_MIPS32))
127# define _PAGE_NO_EXEC (1 << _PAGE_NO_EXEC_SHIFT) 120# define _PAGE_NO_EXEC (1 << _PAGE_NO_EXEC_SHIFT)
128# define _PAGE_NO_READ (1 << _PAGE_NO_READ_SHIFT)
129#elif defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6) 121#elif defined(CONFIG_CPU_MIPSR2) || defined(CONFIG_CPU_MIPSR6)
130# define _PAGE_NO_EXEC (cpu_has_rixi ? (1 << _PAGE_NO_EXEC_SHIFT) : 0) 122# define _PAGE_NO_EXEC (cpu_has_rixi ? (1 << _PAGE_NO_EXEC_SHIFT) : 0)
131# define _PAGE_NO_READ (cpu_has_rixi ? (1 << _PAGE_NO_READ_SHIFT) : 0)
132#endif 123#endif
124#define _PAGE_NO_READ (1 << _PAGE_NO_READ_SHIFT)
133#define _PAGE_GLOBAL (1 << _PAGE_GLOBAL_SHIFT) 125#define _PAGE_GLOBAL (1 << _PAGE_GLOBAL_SHIFT)
134#define _PAGE_VALID (1 << _PAGE_VALID_SHIFT) 126#define _PAGE_VALID (1 << _PAGE_VALID_SHIFT)
135#define _PAGE_DIRTY (1 << _PAGE_DIRTY_SHIFT) 127#define _PAGE_DIRTY (1 << _PAGE_DIRTY_SHIFT)
@@ -145,9 +137,6 @@ enum pgtable_bits {
145#ifndef _PAGE_NO_EXEC 137#ifndef _PAGE_NO_EXEC
146#define _PAGE_NO_EXEC 0 138#define _PAGE_NO_EXEC 0
147#endif 139#endif
148#ifndef _PAGE_NO_READ
149#define _PAGE_NO_READ 0
150#endif
151 140
152#define _PAGE_SILENT_READ _PAGE_VALID 141#define _PAGE_SILENT_READ _PAGE_VALID
153#define _PAGE_SILENT_WRITE _PAGE_DIRTY 142#define _PAGE_SILENT_WRITE _PAGE_DIRTY
@@ -245,7 +234,7 @@ static inline uint64_t pte_to_entrylo(unsigned long pte_val)
245#define _CACHE_UNCACHED_ACCELERATED (7<<_CACHE_SHIFT) 234#define _CACHE_UNCACHED_ACCELERATED (7<<_CACHE_SHIFT)
246#endif 235#endif
247 236
248#define __READABLE (_PAGE_SILENT_READ | _PAGE_READ | _PAGE_ACCESSED) 237#define __READABLE (_PAGE_SILENT_READ | _PAGE_ACCESSED)
249#define __WRITEABLE (_PAGE_SILENT_WRITE | _PAGE_WRITE | _PAGE_MODIFIED) 238#define __WRITEABLE (_PAGE_SILENT_WRITE | _PAGE_WRITE | _PAGE_MODIFIED)
250 239
251#define _PAGE_CHG_MASK (_PAGE_ACCESSED | _PAGE_MODIFIED | \ 240#define _PAGE_CHG_MASK (_PAGE_ACCESSED | _PAGE_MODIFIED | \