summaryrefslogtreecommitdiffstats
path: root/mm/vmstat.c
diff options
context:
space:
mode:
authorMiaohe Lin <linmiaohe@huawei.com>2021-11-05 13:42:19 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2021-11-06 13:30:40 -0700
commita500cb342c84a4c4696850304124bc801331c4a8 (patch)
tree580639fc2f89bc2b44d9ec84d785013876788b05 /mm/vmstat.c
parente1d8c966dbf11afcac1d115f3fca5a29060bba18 (diff)
downloadlinux-stable-a500cb342c84a4c4696850304124bc801331c4a8.tar.gz
linux-stable-a500cb342c84a4c4696850304124bc801331c4a8.tar.bz2
linux-stable-a500cb342c84a4c4696850304124bc801331c4a8.zip
mm/page_isolation: guard against possible putback unisolated page
Isolating a free page in an isolated pageblock is expected to always work as watermarks don't apply here. But if __isolate_free_page() failed, due to condition changes, the page will be left on the free list. And the page will be put back to free list again via __putback_isolated_page(). This may trigger VM_BUG_ON_PAGE() on page->flags checking in __free_one_page() if PageReported is set. Or we will corrupt the free list because list_add() will be called for pages already on another list. Add a VM_WARN_ON() to complain about this change. Link: https://lkml.kernel.org/r/20210914114508.23725-1-linmiaohe@huawei.com Fixes: 3c605096d315 ("mm/page_alloc: restrict max order of merging on isolated pageblock") Signed-off-by: Miaohe Lin <linmiaohe@huawei.com> Reviewed-by: David Hildenbrand <david@redhat.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: John Hubbard <jhubbard@nvidia.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/vmstat.c')
0 files changed, 0 insertions, 0 deletions