diff --git a/mm/slab_common.c b/mm/slab_common.c index 0f3e62d8ec13ff88507457c8c434435169d3dd50..874fce27666c194f0108f14da7eb40d9238ed892 100644 --- a/mm/slab_common.c +++ b/mm/slab_common.c @@ -1223,8 +1223,8 @@ void *kmalloc_order(size_t size, gfp_t flags, unsigned int order) page = alloc_pages(flags, order); if (likely(page)) { ret = page_address(page); - mod_node_page_state(page_pgdat(page), NR_SLAB_UNRECLAIMABLE, - 1 << order); + mod_lruvec_page_state(page, NR_SLAB_UNRECLAIMABLE, + PAGE_SIZE << order); } kmemleak_alloc(ret, size, 1, flags); kasan_kmalloc_large(ret, size, flags); diff --git a/mm/slub.c b/mm/slub.c index c40049f48c8cf231f89cd0a42f3395440dc00ceb..da17245291d4f526c0a7f280e0526d6a3425f6b3 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -3809,8 +3809,8 @@ static void *kmalloc_large_node(size_t size, gfp_t flags, int node) page = alloc_pages_node(node, flags, order); if (page) { ptr = page_address(page); - mod_node_page_state(page_pgdat(page), NR_SLAB_UNRECLAIMABLE, - 1 << order); + mod_lruvec_page_state(page, NR_SLAB_UNRECLAIMABLE, + PAGE_SIZE << order); } kmalloc_large_node_hook(ptr, size, flags); @@ -3950,8 +3950,8 @@ void kfree(const void *x) BUG_ON(!PageCompound(page)); kfree_hook(object); - mod_node_page_state(page_pgdat(page), NR_SLAB_UNRECLAIMABLE, - -(1 << order)); + mod_lruvec_page_state(page, NR_SLAB_UNRECLAIMABLE, + -(PAGE_SIZE << order)); __free_pages(page, order); return; }