Blame view

mm/init-mm.c 1.24 KB
b24413180   Greg Kroah-Hartman   License cleanup: ...
1
  // SPDX-License-Identifier: GPL-2.0
bb1f17b03   Alexey Dobriyan   mm: consolidate i...
2
3
4
5
6
7
  #include <linux/mm_types.h>
  #include <linux/rbtree.h>
  #include <linux/rwsem.h>
  #include <linux/spinlock.h>
  #include <linux/list.h>
  #include <linux/cpumask.h>
60063497a   Arun Sharma   atomic: use <linu...
8
  #include <linux/atomic.h>
bfedb5892   Eric W. Biederman   mm: Add a user_ns...
9
  #include <linux/user_namespace.h>
bb1f17b03   Alexey Dobriyan   mm: consolidate i...
10
  #include <asm/pgtable.h>
a1b200e27   Heiko Carstens   mm: provide init_...
11
12
13
14
15
  #include <asm/mmu.h>
  
  #ifndef INIT_MM_CONTEXT
  #define INIT_MM_CONTEXT(name)
  #endif
bb1f17b03   Alexey Dobriyan   mm: consolidate i...
16

c1a2f7f0c   Rik van Riel   mm: Allocate the ...
17
18
19
20
21
22
23
24
25
26
  /*
   * For dynamically allocated mm_structs, there is a dynamically sized cpumask
   * at the end of the structure, the size of which depends on the maximum CPU
   * number the system can see. That way we allocate only as much memory for
   * mm_cpumask() as needed for the hundreds, or thousands of processes that
   * a system typically runs.
   *
   * Since there is only one init_mm in the entire system, keep it simple
   * and size this cpu_bitmask to NR_CPUS.
   */
bb1f17b03   Alexey Dobriyan   mm: consolidate i...
27
28
29
30
31
32
33
  struct mm_struct init_mm = {
  	.mm_rb		= RB_ROOT,
  	.pgd		= swapper_pg_dir,
  	.mm_users	= ATOMIC_INIT(2),
  	.mm_count	= ATOMIC_INIT(1),
  	.mmap_sem	= __RWSEM_INITIALIZER(init_mm.mmap_sem),
  	.page_table_lock =  __SPIN_LOCK_UNLOCKED(init_mm.page_table_lock),
88aa7cc68   Yang Shi   mm: introduce arg...
34
  	.arg_lock	=  __SPIN_LOCK_UNLOCKED(init_mm.arg_lock),
bb1f17b03   Alexey Dobriyan   mm: consolidate i...
35
  	.mmlist		= LIST_HEAD_INIT(init_mm.mmlist),
bfedb5892   Eric W. Biederman   mm: Add a user_ns...
36
  	.user_ns	= &init_user_ns,
c1a2f7f0c   Rik van Riel   mm: Allocate the ...
37
  	.cpu_bitmap	= { [BITS_TO_LONGS(NR_CPUS)] = 0},
a1b200e27   Heiko Carstens   mm: provide init_...
38
  	INIT_MM_CONTEXT(init_mm)
bb1f17b03   Alexey Dobriyan   mm: consolidate i...
39
  };