aboutsummaryrefslogtreecommitdiffstats
path: root/lib/radix-tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/radix-tree.c')
-rw-r--r--lib/radix-tree.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/radix-tree.c b/lib/radix-tree.c
index 8e00138d593f..da9e10c827df 100644
--- a/lib/radix-tree.c
+++ b/lib/radix-tree.c
@@ -146,7 +146,7 @@ static unsigned int radix_tree_descend(const struct radix_tree_node *parent,
146 146
147static inline gfp_t root_gfp_mask(const struct radix_tree_root *root) 147static inline gfp_t root_gfp_mask(const struct radix_tree_root *root)
148{ 148{
149 return root->gfp_mask & __GFP_BITS_MASK; 149 return root->gfp_mask & (__GFP_BITS_MASK & ~GFP_ZONEMASK);
150} 150}
151 151
152static inline void tag_set(struct radix_tree_node *node, unsigned int tag, 152static inline void tag_set(struct radix_tree_node *node, unsigned int tag,
@@ -2285,6 +2285,7 @@ void __init radix_tree_init(void)
2285 int ret; 2285 int ret;
2286 2286
2287 BUILD_BUG_ON(RADIX_TREE_MAX_TAGS + __GFP_BITS_SHIFT > 32); 2287 BUILD_BUG_ON(RADIX_TREE_MAX_TAGS + __GFP_BITS_SHIFT > 32);
2288 BUILD_BUG_ON(ROOT_IS_IDR & ~GFP_ZONEMASK);
2288 radix_tree_node_cachep = kmem_cache_create("radix_tree_node", 2289 radix_tree_node_cachep = kmem_cache_create("radix_tree_node",
2289 sizeof(struct radix_tree_node), 0, 2290 sizeof(struct radix_tree_node), 0,
2290 SLAB_PANIC | SLAB_RECLAIM_ACCOUNT, 2291 SLAB_PANIC | SLAB_RECLAIM_ACCOUNT,