aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2010-08-09 20:18:28 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2010-08-09 23:44:54 -0400
commita1b200e27c0426ea98c1231a2b78c6094eb073e4 (patch)
tree8091ed3f3451cbc230e9bf72cafc773ee253bbe8 /arch
parente7d86340793e7162126926ec9d226c68f4e37f94 (diff)
mm: provide init_mm mm_context initializer
Provide an INIT_MM_CONTEXT intializer macro which can be used to statically initialize mm_struct:mm_context of init_mm. This way we can get rid of code which will do the initialization at run time (on s390). In addition the current code can be found at a place where it is not expected. So let's have a common initializer which architectures can use if needed. This is based on a patch from Suzuki Poulose. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Suzuki Poulose <suzuki@in.ibm.com> Cc: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/s390/include/asm/mmu.h5
-rw-r--r--arch/s390/mm/vmem.c4
2 files changed, 5 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++) {