X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=lib%2Fradix-tree.c;h=514efb200be6775dd57633a71987a7dcfe2b9ee9;hb=9a79b2274186fade17134929d4f85b70d59a3840;hp=d69ddbe438655be6b65672d2c7366371baadfd85;hpb=f0eef25339f92f7cd4aeea23d9ae97987a5a1e82;p=powerpc.git diff --git a/lib/radix-tree.c b/lib/radix-tree.c index d69ddbe438..514efb200b 100644 --- a/lib/radix-tree.c +++ b/lib/radix-tree.c @@ -151,6 +151,7 @@ int radix_tree_preload(gfp_t gfp_mask) out: return ret; } +EXPORT_SYMBOL(radix_tree_preload); static inline void tag_set(struct radix_tree_node *node, unsigned int tag, int offset) @@ -1004,7 +1005,7 @@ static int radix_tree_callback(struct notifier_block *nfb, struct radix_tree_preload *rtp; /* Free per-cpu pool of perloaded nodes */ - if (action == CPU_DEAD) { + if (action == CPU_DEAD || action == CPU_DEAD_FROZEN) { rtp = &per_cpu(radix_tree_preloads, cpu); while (rtp->nr) { kmem_cache_free(radix_tree_node_cachep, @@ -1020,7 +1021,7 @@ void __init radix_tree_init(void) { radix_tree_node_cachep = kmem_cache_create("radix_tree_node", sizeof(struct radix_tree_node), 0, - SLAB_PANIC, radix_tree_node_ctor, NULL); + SLAB_PANIC, radix_tree_node_ctor); radix_tree_init_maxindex(); hotcpu_notifier(radix_tree_callback, 0); }