Merge tag 'driver-core-4.9-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git...
[cascardo/linux.git] / arch / x86 / include / asm / mmu.h
1 #ifndef _ASM_X86_MMU_H
2 #define _ASM_X86_MMU_H
3
4 #include <linux/spinlock.h>
5 #include <linux/mutex.h>
6
7 /*
8  * The x86 doesn't have a mmu context, but
9  * we put the segment information here.
10  */
11 typedef struct {
12 #ifdef CONFIG_MODIFY_LDT_SYSCALL
13         struct ldt_struct *ldt;
14 #endif
15
16 #ifdef CONFIG_X86_64
17         /* True if mm supports a task running in 32 bit compatibility mode. */
18         unsigned short ia32_compat;
19 #endif
20
21         struct mutex lock;
22         void __user *vdso;                      /* vdso base address */
23         const struct vdso_image *vdso_image;    /* vdso image in use */
24
25         atomic_t perf_rdpmc_allowed;    /* nonzero if rdpmc is allowed */
26 #ifdef CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS
27         /*
28          * One bit per protection key says whether userspace can
29          * use it or not.  protected by mmap_sem.
30          */
31         u16 pkey_allocation_map;
32         s16 execute_only_pkey;
33 #endif
34 } mm_context_t;
35
36 #ifdef CONFIG_SMP
37 void leave_mm(int cpu);
38 #else
39 static inline void leave_mm(int cpu)
40 {
41 }
42 #endif
43
44 #endif /* _ASM_X86_MMU_H */