mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
vm: fix vm_pgoff wrap in upward expansion
Commit a626ca6a65
("vm: fix vm_pgoff wrap in stack expansion") fixed
the case of an expanding mapping causing vm_pgoff wrapping when you had
downward stack expansion. But there was another case where IA64 and
PA-RISC expand mappings: upward expansion.
This fixes that case too.
Signed-off-by: Hugh Dickins <hughd@google.com>
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
c191f6ccee
commit
42c36f63ac
1 changed files with 7 additions and 4 deletions
11
mm/mmap.c
11
mm/mmap.c
|
@ -1767,10 +1767,13 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
|
|||
size = address - vma->vm_start;
|
||||
grow = (address - vma->vm_end) >> PAGE_SHIFT;
|
||||
|
||||
error = acct_stack_growth(vma, size, grow);
|
||||
if (!error) {
|
||||
vma->vm_end = address;
|
||||
perf_event_mmap(vma);
|
||||
error = -ENOMEM;
|
||||
if (vma->vm_pgoff + (size >> PAGE_SHIFT) >= vma->vm_pgoff) {
|
||||
error = acct_stack_growth(vma, size, grow);
|
||||
if (!error) {
|
||||
vma->vm_end = address;
|
||||
perf_event_mmap(vma);
|
||||
}
|
||||
}
|
||||
}
|
||||
vma_unlock_anon_vma(vma);
|
||||
|
|
Loading…
Reference in a new issue