diff options
Diffstat (limited to 'lib/radix-tree.c')
-rw-r--r-- | lib/radix-tree.c | 3 |
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 | ||
147 | static inline gfp_t root_gfp_mask(const struct radix_tree_root *root) | 147 | static 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 | ||
152 | static inline void tag_set(struct radix_tree_node *node, unsigned int tag, | 152 | static 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, |