The patch titled mm: alloc_large_system_hash check order has been added to the -mm tree. Its filename is mm-alloc_large_system_hash-check-order.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 *** See http://userweb.kernel.org/~akpm/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: mm: alloc_large_system_hash check order From: Hugh Dickins <hugh@xxxxxxxxxxx> On an x86_64 with 4GB ram, tcp_init()'s call to alloc_large_system_hash(), to allocate tcp_hashinfo.ehash, is now triggering an mmotm WARN_ON_ONCE on order >= MAX_ORDER - it's hoping for order 11. alloc_large_system_hash() had better make its own check on the order. Signed-off-by: Hugh Dickins <hugh@xxxxxxxxxxx> Cc: David Miller <davem@xxxxxxxxxxxxx> Cc: Mel Gorman <mel@xxxxxxxxx> Cc: Eric Dumazet <dada1@xxxxxxxxxxxxx> Cc: Christoph Lameter <cl@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/page_alloc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff -puN mm/page_alloc.c~mm-alloc_large_system_hash-check-order mm/page_alloc.c --- a/mm/page_alloc.c~mm-alloc_large_system_hash-check-order +++ a/mm/page_alloc.c @@ -4562,7 +4562,10 @@ void *__init alloc_large_system_hash(con table = __vmalloc(size, GFP_ATOMIC, PAGE_KERNEL); else { unsigned long order = get_order(size); - table = (void*) __get_free_pages(GFP_ATOMIC, order); + + if (order < MAX_ORDER) + table = (void *)__get_free_pages(GFP_ATOMIC, + order); /* * If bucketsize is not a power-of-two, we may free * some pages at the end of hash table. _ Patches currently in -mm which might be from hugh@xxxxxxxxxxx are linux-next.patch eliminate-thousands-of-warnings-with-gcc-32-build.patch eliminate-thousands-of-warnings-with-gcc-32-build-cleanup.patch mm-disable-preemption-in-apply_to_pte_range.patch integrity-nfsd-imbalance-bug-fix.patch ksm-mmu_notifiers-add-set_pte_at_notify.patch ksm-add-get_pte-helper-function-fetching-pte-for-va.patch ksm-add-get_pte-helper-function-fetching-pte-for-va-fix.patch ksm-add-page_wrprotect-write-protecting-page.patch ksm-add-replace_page-change-the-page-pte-is-pointing-to.patch ksm-add-ksm-kernel-shared-memory-driver.patch ksm-add-ksm-kernel-shared-memory-driver-checkpatch-fixes.patch ksm-add-ksm-kernel-shared-memory-driver-fix-unsafe-pte-fetching.patch ksm-add-ksm-kernel-shared-memory-driver-borked-on-non-x86.patch mm-alloc_large_system_hash-check-order.patch page-allocator-update-nr_free_pages-only-as-necessary-fix.patch getrusage-fill-ru_maxrss-value.patch memcg-add-file-based-rss-accounting-fix-mem_cgroup_update_mapped_file_stat-oops.patch prio_tree-debugging-patch.patch use-alloc_pages_exact-in-alloc_large_system_hash-to-avoid-duplicated-logic-v2.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