diff options
Diffstat (limited to 'fs/proc/task_mmu.c')
| -rw-r--r-- | fs/proc/task_mmu.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 2e7addfd9803..318d8654989b 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c | |||
| @@ -214,7 +214,7 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma) | |||
| 214 | int flags = vma->vm_flags; | 214 | int flags = vma->vm_flags; |
| 215 | unsigned long ino = 0; | 215 | unsigned long ino = 0; |
| 216 | unsigned long long pgoff = 0; | 216 | unsigned long long pgoff = 0; |
| 217 | unsigned long start; | 217 | unsigned long start, end; |
| 218 | dev_t dev = 0; | 218 | dev_t dev = 0; |
| 219 | int len; | 219 | int len; |
| 220 | 220 | ||
| @@ -227,13 +227,15 @@ static void show_map_vma(struct seq_file *m, struct vm_area_struct *vma) | |||
| 227 | 227 | ||
| 228 | /* We don't show the stack guard page in /proc/maps */ | 228 | /* We don't show the stack guard page in /proc/maps */ |
| 229 | start = vma->vm_start; | 229 | start = vma->vm_start; |
| 230 | if (vma->vm_flags & VM_GROWSDOWN) | 230 | if (stack_guard_page_start(vma, start)) |
| 231 | if (!vma_stack_continue(vma->vm_prev, vma->vm_start)) | 231 | start += PAGE_SIZE; |
| 232 | start += PAGE_SIZE; | 232 | end = vma->vm_end; |
| 233 | if (stack_guard_page_end(vma, end)) | ||
| 234 | end -= PAGE_SIZE; | ||
| 233 | 235 | ||
| 234 | seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n", | 236 | seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n", |
| 235 | start, | 237 | start, |
| 236 | vma->vm_end, | 238 | end, |
| 237 | flags & VM_READ ? 'r' : '-', | 239 | flags & VM_READ ? 'r' : '-', |
| 238 | flags & VM_WRITE ? 'w' : '-', | 240 | flags & VM_WRITE ? 'w' : '-', |
| 239 | flags & VM_EXEC ? 'x' : '-', | 241 | flags & VM_EXEC ? 'x' : '-', |
