aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/s390/mm/mmap.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
index 2e10d2b8ad35..5bea139517a2 100644
--- a/arch/s390/mm/mmap.c
+++ b/arch/s390/mm/mmap.c
@@ -119,7 +119,8 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
119 return addr; 119 return addr;
120 120
121check_asce_limit: 121check_asce_limit:
122 if (addr + len > current->mm->context.asce_limit) { 122 if (addr + len > current->mm->context.asce_limit &&
123 addr + len <= TASK_SIZE) {
123 rc = crst_table_upgrade(mm, addr + len); 124 rc = crst_table_upgrade(mm, addr + len);
124 if (rc) 125 if (rc)
125 return (unsigned long) rc; 126 return (unsigned long) rc;
@@ -183,7 +184,8 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
183 } 184 }
184 185
185check_asce_limit: 186check_asce_limit:
186 if (addr + len > current->mm->context.asce_limit) { 187 if (addr + len > current->mm->context.asce_limit &&
188 addr + len <= TASK_SIZE) {
187 rc = crst_table_upgrade(mm, addr + len); 189 rc = crst_table_upgrade(mm, addr + len);
188 if (rc) 190 if (rc)
189 return (unsigned long) rc; 191 return (unsigned long) rc;