summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2011-05-10 17:13:43 +0200
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2011-05-10 17:13:43 +0200
commitbadb8bb983e9cf5b7a872e0a4f6ebeac2b1ce133 (patch)
tree20a5a2f01fdb6304e23d51663e0f926d0c25ac11 /arch
parent3d8dcb3c76bb2930798f61675c33cce8945ab988 (diff)
downloadlinux-badb8bb983e9cf5b7a872e0a4f6ebeac2b1ce133.tar.bz2
[S390] fix alloc_pgste check in init_new_context
Processes started with kernel_execve from a kernel thread will have current->mm==NULL. Reading current->mm->context.alloc_pgste will read a more or less random bit from lowcore in this case. If the bit turns out to be set the whole process tree started this way will allocate page table extensions although they have no need for it. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/s390/include/asm/mmu_context.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/s390/include/asm/mmu_context.h b/arch/s390/include/asm/mmu_context.h
index a6f0e7cc9cde..8c277caa8d3a 100644
--- a/arch/s390/include/asm/mmu_context.h
+++ b/arch/s390/include/asm/mmu_context.h
@@ -23,7 +23,7 @@ static inline int init_new_context(struct task_struct *tsk,
#ifdef CONFIG_64BIT
mm->context.asce_bits |= _ASCE_TYPE_REGION3;
#endif
- if (current->mm->context.alloc_pgste) {
+ if (current->mm && current->mm->context.alloc_pgste) {
/*
* alloc_pgste indicates, that any NEW context will be created
* with extended page tables. The old context is unchanged. The