diff options
-rw-r--r-- | fs/proc/task_mmu.c | 8 | ||||
-rw-r--r-- | mm/mlock.c | 8 |
2 files changed, 15 insertions, 1 deletions
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index aea1d3f1ffb5..439fc1f1c1c4 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c | |||
@@ -210,6 +210,7 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma) | |||
210 | int flags = vma->vm_flags; | 210 | int flags = vma->vm_flags; |
211 | unsigned long ino = 0; | 211 | unsigned long ino = 0; |
212 | unsigned long long pgoff = 0; | 212 | unsigned long long pgoff = 0; |
213 | unsigned long start; | ||
213 | dev_t dev = 0; | 214 | dev_t dev = 0; |
214 | int len; | 215 | int len; |
215 | 216 | ||
@@ -220,8 +221,13 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma) | |||
220 | pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; | 221 | pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; |
221 | } | 222 | } |
222 | 223 | ||
224 | /* We don't show the stack guard page in /proc/maps */ | ||
225 | start = vma->vm_start; | ||
226 | if (vma->vm_flags & VM_GROWSDOWN) | ||
227 | start += PAGE_SIZE; | ||
228 | |||
223 | seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n", | 229 | seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n", |
224 | vma->vm_start, | 230 | start, |
225 | vma->vm_end, | 231 | vma->vm_end, |
226 | flags & VM_READ ? 'r' : '-', | 232 | flags & VM_READ ? 'r' : '-', |
227 | flags & VM_WRITE ? 'w' : '-', | 233 | flags & VM_WRITE ? 'w' : '-', |
diff --git a/mm/mlock.c b/mm/mlock.c index 3f82720e0515..49e5e4cb8232 100644 --- a/mm/mlock.c +++ b/mm/mlock.c | |||
@@ -167,6 +167,14 @@ static long __mlock_vma_pages_range(struct vm_area_struct *vma, | |||
167 | if (vma->vm_flags & VM_WRITE) | 167 | if (vma->vm_flags & VM_WRITE) |
168 | gup_flags |= FOLL_WRITE; | 168 | gup_flags |= FOLL_WRITE; |
169 | 169 | ||
170 | /* We don't try to access the guard page of a stack vma */ | ||
171 | if (vma->vm_flags & VM_GROWSDOWN) { | ||
172 | if (start == vma->vm_start) { | ||
173 | start += PAGE_SIZE; | ||
174 | nr_pages--; | ||
175 | } | ||
176 | } | ||
177 | |||
170 | while (nr_pages > 0) { | 178 | while (nr_pages > 0) { |
171 | int i; | 179 | int i; |
172 | 180 | ||