Skip to content

Commit 0df162e

Browse files
committed
MIPS: mm: Clean up setup of protection map
Protection map difference between RIXI and non RIXI cpus is _PAGE_NO_EXEC and _PAGE_NO_READ usage. Both already take care of cpu_has_rixi while setting up the page bits. So we just need one setup of protection map and can drop the now unused (and broken for RIXI) PAGE_* defines. Signed-off-by: Thomas Bogendoerfer <[email protected]>
1 parent ed2adb7 commit 0df162e

File tree

2 files changed

+18
-45
lines changed

2 files changed

+18
-45
lines changed

arch/mips/include/asm/pgtable.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,6 @@
2525
struct mm_struct;
2626
struct vm_area_struct;
2727

28-
#define PAGE_NONE __pgprot(_PAGE_PRESENT | _PAGE_NO_READ | \
29-
_page_cachable_default)
30-
#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_WRITE | \
31-
_page_cachable_default)
32-
#define PAGE_COPY __pgprot(_PAGE_PRESENT | _PAGE_NO_EXEC | \
33-
_page_cachable_default)
34-
#define PAGE_READONLY __pgprot(_PAGE_PRESENT | \
35-
_page_cachable_default)
3628
#define PAGE_KERNEL __pgprot(_PAGE_PRESENT | __READABLE | __WRITEABLE | \
3729
_PAGE_GLOBAL | _page_cachable_default)
3830
#define PAGE_KERNEL_NC __pgprot(_PAGE_PRESENT | __READABLE | __WRITEABLE | \

arch/mips/mm/cache.c

Lines changed: 18 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -159,43 +159,24 @@ EXPORT_SYMBOL(_page_cachable_default);
159159

160160
static inline void setup_protection_map(void)
161161
{
162-
if (cpu_has_rixi) {
163-
protection_map[0] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_NO_READ);
164-
protection_map[1] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC);
165-
protection_map[2] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_NO_READ);
166-
protection_map[3] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC);
167-
protection_map[4] = PM(_PAGE_PRESENT);
168-
protection_map[5] = PM(_PAGE_PRESENT);
169-
protection_map[6] = PM(_PAGE_PRESENT);
170-
protection_map[7] = PM(_PAGE_PRESENT);
171-
172-
protection_map[8] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_NO_READ);
173-
protection_map[9] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC);
174-
protection_map[10] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_WRITE | _PAGE_NO_READ);
175-
protection_map[11] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_WRITE);
176-
protection_map[12] = PM(_PAGE_PRESENT);
177-
protection_map[13] = PM(_PAGE_PRESENT);
178-
protection_map[14] = PM(_PAGE_PRESENT | _PAGE_WRITE);
179-
protection_map[15] = PM(_PAGE_PRESENT | _PAGE_WRITE);
180-
181-
} else {
182-
protection_map[0] = PAGE_NONE;
183-
protection_map[1] = PAGE_READONLY;
184-
protection_map[2] = PAGE_COPY;
185-
protection_map[3] = PAGE_COPY;
186-
protection_map[4] = PAGE_READONLY;
187-
protection_map[5] = PAGE_READONLY;
188-
protection_map[6] = PAGE_COPY;
189-
protection_map[7] = PAGE_COPY;
190-
protection_map[8] = PAGE_NONE;
191-
protection_map[9] = PAGE_READONLY;
192-
protection_map[10] = PAGE_SHARED;
193-
protection_map[11] = PAGE_SHARED;
194-
protection_map[12] = PAGE_READONLY;
195-
protection_map[13] = PAGE_READONLY;
196-
protection_map[14] = PAGE_SHARED;
197-
protection_map[15] = PAGE_SHARED;
198-
}
162+
protection_map[0] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_NO_READ);
163+
protection_map[1] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC);
164+
protection_map[2] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_NO_READ);
165+
protection_map[3] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC);
166+
protection_map[4] = PM(_PAGE_PRESENT);
167+
protection_map[5] = PM(_PAGE_PRESENT);
168+
protection_map[6] = PM(_PAGE_PRESENT);
169+
protection_map[7] = PM(_PAGE_PRESENT);
170+
171+
protection_map[8] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_NO_READ);
172+
protection_map[9] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC);
173+
protection_map[10] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_WRITE |
174+
_PAGE_NO_READ);
175+
protection_map[11] = PM(_PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_WRITE);
176+
protection_map[12] = PM(_PAGE_PRESENT);
177+
protection_map[13] = PM(_PAGE_PRESENT);
178+
protection_map[14] = PM(_PAGE_PRESENT | _PAGE_WRITE);
179+
protection_map[15] = PM(_PAGE_PRESENT | _PAGE_WRITE);
199180
}
200181

201182
#undef PM

0 commit comments

Comments
 (0)