[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.23.453.2007011151280.1908531@chino.kir.corp.google.com>
Date: Wed, 1 Jul 2020 11:52:38 -0700 (PDT)
From: David Rientjes <rientjes@...gle.com>
To: Long Li <lonuxli.64@...il.com>
cc: willy@...radead.org, cl@...ux.com, penberg@...nel.org,
iamjoonsoo.kim@....com, akpm@...ux-foundation.org,
linux-mm@...ck.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3] mm, slab: Check GFP_SLAB_BUG_MASK before alloc_pages
in kmalloc_order
On Wed, 1 Jul 2020, Long Li wrote:
> diff --git a/mm/slab.c b/mm/slab.c
> index ac7a223d9ac3..2850fe3c5fb8 100644
> --- a/mm/slab.c
> +++ b/mm/slab.c
> @@ -2573,13 +2573,9 @@ static struct page *cache_grow_begin(struct kmem_cache *cachep,
> * Be lazy and only check for valid flags here, keeping it out of the
> * critical path in kmem_cache_alloc().
> */
> - if (unlikely(flags & GFP_SLAB_BUG_MASK)) {
> - gfp_t invalid_mask = flags & GFP_SLAB_BUG_MASK;
> - flags &= ~GFP_SLAB_BUG_MASK;
> - pr_warn("Unexpected gfp: %#x (%pGg). Fixing up to gfp: %#x (%pGg). Fix your code!\n",
> - invalid_mask, &invalid_mask, flags, &flags);
> - dump_stack();
> - }
> + if (unlikely(flags & GFP_SLAB_BUG_MASK))
> + flags = kmalloc_invalid_flags(flags);
> +
> WARN_ON_ONCE(cachep->ctor && (flags & __GFP_ZERO));
> local_flags = flags & (GFP_CONSTRAINT_MASK|GFP_RECLAIM_MASK);
>
Is this name correct? kmalloc_invalid_flags() masks off the invalid flags
and returns the valid flags :) Maybe kmalloc_check_flags()?
Powered by blists - more mailing lists