.. | .. |
---|
5 | 5 | #include <linux/spinlock.h> |
---|
6 | 6 | #include <linux/list.h> |
---|
7 | 7 | #include <linux/cpumask.h> |
---|
| 8 | +#include <linux/mman.h> |
---|
| 9 | +#include <linux/pgtable.h> |
---|
8 | 10 | |
---|
9 | 11 | #include <linux/atomic.h> |
---|
10 | 12 | #include <linux/user_namespace.h> |
---|
11 | | -#include <asm/pgtable.h> |
---|
12 | 13 | #include <asm/mmu.h> |
---|
13 | 14 | |
---|
14 | 15 | #ifndef INIT_MM_CONTEXT |
---|
.. | .. |
---|
27 | 28 | */ |
---|
28 | 29 | struct mm_struct init_mm = { |
---|
29 | 30 | .mm_rb = RB_ROOT, |
---|
| 31 | +#ifdef CONFIG_SPECULATIVE_PAGE_FAULT |
---|
| 32 | + .mm_rb_lock = __RW_LOCK_UNLOCKED(init_mm.mm_rb_lock), |
---|
| 33 | +#endif |
---|
30 | 34 | .pgd = swapper_pg_dir, |
---|
31 | 35 | .mm_users = ATOMIC_INIT(2), |
---|
32 | 36 | .mm_count = ATOMIC_INIT(1), |
---|
33 | | - .mmap_sem = __RWSEM_INITIALIZER(init_mm.mmap_sem), |
---|
| 37 | + .write_protect_seq = SEQCNT_ZERO(init_mm.write_protect_seq), |
---|
| 38 | + MMAP_LOCK_INITIALIZER(init_mm) |
---|
34 | 39 | .page_table_lock = __SPIN_LOCK_UNLOCKED(init_mm.page_table_lock), |
---|
35 | 40 | .arg_lock = __SPIN_LOCK_UNLOCKED(init_mm.arg_lock), |
---|
36 | 41 | .mmlist = LIST_HEAD_INIT(init_mm.mmlist), |
---|
37 | 42 | .user_ns = &init_user_ns, |
---|
38 | | - .cpu_bitmap = { [BITS_TO_LONGS(NR_CPUS)] = 0}, |
---|
| 43 | + .cpu_bitmap = CPU_BITS_NONE, |
---|
39 | 44 | INIT_MM_CONTEXT(init_mm) |
---|
40 | 45 | }; |
---|