+2
−2
+4
−0
+26
−0
Loading
hulk inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IBDF90 -------------------------------- While we split/merge page in dynamic pool, the refcount of page may be increased to 1 due to prep_new_page(), and we then set the refcount to 0. That means there's a time window that the refcount of the free page is not 0. split_huge_pages_set() will scan all pages and try to get the refcount If try to get refcount in the above time window and put_page() after the refcount is set to 0, the refcount will be decreased to -1. It's dangerous if the refcount for page is not 0 when split/merge, so try not to get refcount there. Fixes: 0bc0d0d5 ("dhugetlb: backport dynamic hugetlb feature") Signed-off-by:Liu Shixin <liushixin2@huawei.com>