Skip to content
Snippets Groups Projects
Commit ce4cce2f authored by Guo Hui's avatar Guo Hui Committed by Yang Yingliang
Browse files

mm/page_alloc: fix managed_pages of zone is incorrect and out of bounds

uniontech inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I3RFV8


CVE: NA

----------------------------------------------------------------

Commit eb761d65 ("mm: parallelize deferred struct page initialization
within each node") the code "++zone" in follow code:
    /* Sanity check that the next zone really is unpopulated */
    WARN_ON(++zid < MAX_NR_ZONES && populated_zone(++zone));
    VM_BUG_ON(nr_init != nr_free);

    zone->managed_pages += nr_free;

makes the managed_pages statistics of the current zone incorrect
and the zone may have out-of-bounds memory when
CONFIG_DEFERRED_STRUCT_PAGE_INIT=y, causing the Virtual machine
system startup to fail when the Virtual machine system current
allocated memory is set to half of the Virtual machine
maximum memory using virt-manager tool

Fix it by putting the code “zone->managed_pages += nr_free;”
before “++zone” code

Fixes: eb761d65 ("mm: parallelize deferred struct page initialization
within each node")
Reported-by: default avatarPeng Yuanbo <pengyuanbo@uniontech.com>
Signed-off-by: default avatarGuo Hui <guohui@uniontech.com>
Reviewed-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: default avatarCheng Jian <cj.chengjian@huawei.com>
Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
parent fba3955b
No related branches found
No related tags found
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment