mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-19 12:24:34 +08:00
slab: improve checking for invalid gfp_flags
The code goes BUG, but doesn't tell us which bits were unexpectedly set. Print that out. Cc: Christoph Lameter <cl@linux.com> Cc: Pekka Enberg <penberg@kernel.org> Cc: David Rientjes <rientjes@google.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f6edde9cbe
commit
c871ac4e96
@ -2590,7 +2590,10 @@ static int cache_grow(struct kmem_cache *cachep,
|
|||||||
* Be lazy and only check for valid flags here, keeping it out of the
|
* Be lazy and only check for valid flags here, keeping it out of the
|
||||||
* critical path in kmem_cache_alloc().
|
* critical path in kmem_cache_alloc().
|
||||||
*/
|
*/
|
||||||
BUG_ON(flags & GFP_SLAB_BUG_MASK);
|
if (unlikely(flags & GFP_SLAB_BUG_MASK)) {
|
||||||
|
pr_emerg("gfp: %u\n", flags & GFP_SLAB_BUG_MASK);
|
||||||
|
BUG();
|
||||||
|
}
|
||||||
local_flags = flags & (GFP_CONSTRAINT_MASK|GFP_RECLAIM_MASK);
|
local_flags = flags & (GFP_CONSTRAINT_MASK|GFP_RECLAIM_MASK);
|
||||||
|
|
||||||
/* Take the node list lock to change the colour_next on this node */
|
/* Take the node list lock to change the colour_next on this node */
|
||||||
|
@ -1377,7 +1377,10 @@ static struct page *new_slab(struct kmem_cache *s, gfp_t flags, int node)
|
|||||||
int order;
|
int order;
|
||||||
int idx;
|
int idx;
|
||||||
|
|
||||||
BUG_ON(flags & GFP_SLAB_BUG_MASK);
|
if (unlikely(flags & GFP_SLAB_BUG_MASK)) {
|
||||||
|
pr_emerg("gfp: %u\n", flags & GFP_SLAB_BUG_MASK);
|
||||||
|
BUG();
|
||||||
|
}
|
||||||
|
|
||||||
page = allocate_slab(s,
|
page = allocate_slab(s,
|
||||||
flags & (GFP_RECLAIM_MASK | GFP_CONSTRAINT_MASK), node);
|
flags & (GFP_RECLAIM_MASK | GFP_CONSTRAINT_MASK), node);
|
||||||
|
Loading…
Reference in New Issue
Block a user