The patch titled Subject: mm: fix invalid node in alloc_migrate_target() has been added to the -mm tree. Its filename is mm-fix-invalid-node-in-alloc_migrate_target.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/mm-fix-invalid-node-in-alloc_migrate_target.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/mm-fix-invalid-node-in-alloc_migrate_target.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Xishi Qiu <qiuxishi@xxxxxxxxxx> Subject: mm: fix invalid node in alloc_migrate_target() It is incorrect to use next_node to find a target node, it will return MAX_NUMNODES or invalid node. This will lead to crash in buddy system allocation. Signed-off-by: Xishi Qiu <qiuxishi@xxxxxxxxxx> Cc: Vlastimil Babka <vbabka@xxxxxxx> Cc: Joonsoo Kim <js1304@xxxxxxxxx> Cc: David Rientjes <rientjes@xxxxxxxxxx> Cc: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx> Cc: "Laura Abbott" <lauraa@xxxxxxxxxxxxxx> Cc: Hui Zhu <zhuhui@xxxxxxxxxx> Cc: Wang Xiaoqiang <wangxq10@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/page_isolation.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff -puN mm/page_isolation.c~mm-fix-invalid-node-in-alloc_migrate_target mm/page_isolation.c --- a/mm/page_isolation.c~mm-fix-invalid-node-in-alloc_migrate_target +++ a/mm/page_isolation.c @@ -289,11 +289,11 @@ struct page *alloc_migrate_target(struct * now as a simple work-around, we use the next node for destination. */ if (PageHuge(page)) { - nodemask_t src = nodemask_of_node(page_to_nid(page)); - nodemask_t dst; - nodes_complement(dst, src); + int node = next_online_node(page_to_nid(page)); + if (node == MAX_NUMNODES) + node = first_online_node; return alloc_huge_page_node(page_hstate(compound_head(page)), - next_node(page_to_nid(page), dst)); + node); } if (PageHighMem(page)) _ Patches currently in -mm which might be from qiuxishi@xxxxxxxxxx are mm-fix-invalid-node-in-alloc_migrate_target.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html