aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/cpumask.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/cpumask.c b/lib/cpumask.c
index 8d03f22c6ced..3f258f58c85b 100644
--- a/lib/cpumask.c
+++ b/lib/cpumask.c
@@ -76,15 +76,14 @@ int cpumask_any_but(const struct cpumask *mask, unsigned int cpu)
76 76
77/* These are not inline because of header tangles. */ 77/* These are not inline because of header tangles. */
78#ifdef CONFIG_CPUMASK_OFFSTACK 78#ifdef CONFIG_CPUMASK_OFFSTACK
79bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags) 79bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node)
80{ 80{
81 if (likely(slab_is_available())) 81 if (likely(slab_is_available()))
82 *mask = kmalloc(cpumask_size(), flags); 82 *mask = kmalloc_node(cpumask_size(), flags, node);
83 else { 83 else {
84#ifdef CONFIG_DEBUG_PER_CPU_MAPS 84#ifdef CONFIG_DEBUG_PER_CPU_MAPS
85 printk(KERN_ERR 85 printk(KERN_ERR
86 "=> alloc_cpumask_var: kmalloc not available!\n"); 86 "=> alloc_cpumask_var: kmalloc not available!\n");
87 dump_stack();
88#endif 87#endif
89 *mask = NULL; 88 *mask = NULL;
90 } 89 }
@@ -96,6 +95,12 @@ bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags)
96#endif 95#endif
97 return *mask != NULL; 96 return *mask != NULL;
98} 97}
98EXPORT_SYMBOL(alloc_cpumask_var_node);
99
100bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags)
101{
102 return alloc_cpumask_var_node(mask, flags, numa_node_id());
103}
99EXPORT_SYMBOL(alloc_cpumask_var); 104EXPORT_SYMBOL(alloc_cpumask_var);
100 105
101void __init alloc_bootmem_cpumask_var(cpumask_var_t *mask) 106void __init alloc_bootmem_cpumask_var(cpumask_var_t *mask)