diff options
-rw-r--r-- | arch/s390/include/asm/mmu.h | 5 | ||||
-rw-r--r-- | arch/s390/mm/vmem.c | 4 | ||||
-rw-r--r-- | mm/init-mm.c | 6 |
3 files changed, 11 insertions, 4 deletions
diff --git a/arch/s390/include/asm/mmu.h b/arch/s390/include/asm/mmu.h index 03be99919d62..99e3409102b9 100644 --- a/arch/s390/include/asm/mmu.h +++ b/arch/s390/include/asm/mmu.h | |||
@@ -13,4 +13,9 @@ typedef struct { | |||
13 | int alloc_pgste; /* cloned contexts will have extended page tables */ | 13 | int alloc_pgste; /* cloned contexts will have extended page tables */ |
14 | } mm_context_t; | 14 | } mm_context_t; |
15 | 15 | ||
16 | #define INIT_MM_CONTEXT(name) \ | ||
17 | .context.list_lock = __SPIN_LOCK_UNLOCKED(name.context.list_lock), \ | ||
18 | .context.crst_list = LIST_HEAD_INIT(name.context.crst_list), \ | ||
19 | .context.pgtable_list = LIST_HEAD_INIT(name.context.pgtable_list), | ||
20 | |||
16 | #endif | 21 | #endif |
diff --git a/arch/s390/mm/vmem.c b/arch/s390/mm/vmem.c index 90165e7ca04e..34c43f23b28c 100644 --- a/arch/s390/mm/vmem.c +++ b/arch/s390/mm/vmem.c | |||
@@ -332,10 +332,6 @@ void __init vmem_map_init(void) | |||
332 | unsigned long start, end; | 332 | unsigned long start, end; |
333 | int i; | 333 | int i; |
334 | 334 | ||
335 | spin_lock_init(&init_mm.context.list_lock); | ||
336 | INIT_LIST_HEAD(&init_mm.context.crst_list); | ||
337 | INIT_LIST_HEAD(&init_mm.context.pgtable_list); | ||
338 | init_mm.context.noexec = 0; | ||
339 | ro_start = ((unsigned long)&_stext) & PAGE_MASK; | 335 | ro_start = ((unsigned long)&_stext) & PAGE_MASK; |
340 | ro_end = PFN_ALIGN((unsigned long)&_eshared); | 336 | ro_end = PFN_ALIGN((unsigned long)&_eshared); |
341 | for (i = 0; i < MEMORY_CHUNKS && memory_chunk[i].size > 0; i++) { | 337 | for (i = 0; i < MEMORY_CHUNKS && memory_chunk[i].size > 0; i++) { |
diff --git a/mm/init-mm.c b/mm/init-mm.c index 57aba0da9668..1d29cdfe8ebb 100644 --- a/mm/init-mm.c +++ b/mm/init-mm.c | |||
@@ -7,6 +7,11 @@ | |||
7 | 7 | ||
8 | #include <asm/atomic.h> | 8 | #include <asm/atomic.h> |
9 | #include <asm/pgtable.h> | 9 | #include <asm/pgtable.h> |
10 | #include <asm/mmu.h> | ||
11 | |||
12 | #ifndef INIT_MM_CONTEXT | ||
13 | #define INIT_MM_CONTEXT(name) | ||
14 | #endif | ||
10 | 15 | ||
11 | struct mm_struct init_mm = { | 16 | struct mm_struct init_mm = { |
12 | .mm_rb = RB_ROOT, | 17 | .mm_rb = RB_ROOT, |
@@ -17,4 +22,5 @@ struct mm_struct init_mm = { | |||
17 | .page_table_lock = __SPIN_LOCK_UNLOCKED(init_mm.page_table_lock), | 22 | .page_table_lock = __SPIN_LOCK_UNLOCKED(init_mm.page_table_lock), |
18 | .mmlist = LIST_HEAD_INIT(init_mm.mmlist), | 23 | .mmlist = LIST_HEAD_INIT(init_mm.mmlist), |
19 | .cpu_vm_mask = CPU_MASK_ALL, | 24 | .cpu_vm_mask = CPU_MASK_ALL, |
25 | INIT_MM_CONTEXT(init_mm) | ||
20 | }; | 26 | }; |