25 #include <linux/signal.h>
26 #include <linux/sched.h>
27 #include <linux/kernel.h>
28 #include <linux/errno.h>
29 #include <linux/string.h>
30 #include <linux/types.h>
31 #include <linux/ptrace.h>
32 #include <linux/mman.h>
39 #include <asm/uaccess.h>
40 #include <asm/pgalloc.h>
41 #include <asm/mmu_context.h>
52 if (is_vmalloc_addr((
void *)address)) {
80 if ((
pte_val(entry) & protection_flags) != protection_flags)
94 unsigned short protection_flags[8];
108 .is_text_access = {1, 1, 0, 0, 0, 0, 0, 0}
111 static inline unsigned int
112 expevt_to_fault_code(
unsigned long expevt)
115 return FAULT_CODE_ITLB;
116 else if (expevt == 0x060)
132 unsigned long address)
135 unsigned long long index;
136 unsigned long long expevt4;
137 unsigned int fault_code;
148 expevt4 = (expevt >> 4);
151 index = expevt4 ^ (expevt4 >> 5);
154 fault_code = expevt_to_fault_code(expevt);
159 fault_code |= FAULT_CODE_ITLB;
163 set_thread_fault_code(fault_code);