]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commit
mm: do not collapse stack gap into THP
authorMichal Hocko <mhocko@suse.com>
Thu, 25 May 2017 06:12:42 +0000 (08:12 +0200)
committerStefan Bader <stefan.bader@canonical.com>
Thu, 8 Jun 2017 09:59:34 +0000 (11:59 +0200)
commite9dbbeb2e0b61881d67ba7818fd4b3f996a35f0b
treebe167a01887934afbf8a1078c4bacae2e0b653cf
parentfe388e5751e74b3534ee21d01b999795dfc83d39
mm: do not collapse stack gap into THP

Oleg has noticed that khugepaged will happilly collapse stack vma (as
long as it is not an early stack - see is_vma_temporary_stack) and
it might effectively remove the stack gap area as well because a larger
part of the stack vma is usually populated. The same applies to the
page fault handler.

Fix this by checking stack_guard_area when revalidating a VMA
in hugepage_vma_revalidate.  We do not want to hook/replace
is_vma_temporary_stack() check because THP might be still useful for
stack, all we need is excluding the gap from collapsing into a THP.

Also check the to-be-created THP in do_huge_pmd_anonymous_page to
make sure it is completely outside of the gap area because we we could
create THP covering the gap area.

CVE-2017-1000364

Noticed-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
mm/huge_memory.c
mm/khugepaged.c