| .. | .. |
|---|
| 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 | }; |
|---|