summaryrefslogtreecommitdiff
path: root/arch/s390
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2011-05-10 15:13:43 (GMT)
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2011-05-10 15:13:43 (GMT)
commitbadb8bb983e9cf5b7a872e0a4f6ebeac2b1ce133 (patch)
tree20a5a2f01fdb6304e23d51663e0f926d0c25ac11 /arch/s390
parent3d8dcb3c76bb2930798f61675c33cce8945ab988 (diff)
downloadlinux-badb8bb983e9cf5b7a872e0a4f6ebeac2b1ce133.tar.xz
[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/s390')
-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 a6f0e7c..8c277ca 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