diff options
Diffstat (limited to 'lib/cpumask.c')
-rw-r--r-- | lib/cpumask.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/cpumask.c b/lib/cpumask.c index 8e1496cb63f7..3389e2440da0 100644 --- a/lib/cpumask.c +++ b/lib/cpumask.c | |||
@@ -107,6 +107,14 @@ bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node) | |||
107 | dump_stack(); | 107 | dump_stack(); |
108 | } | 108 | } |
109 | #endif | 109 | #endif |
110 | /* FIXME: Bandaid to save us from old primitives which go to NR_CPUS. */ | ||
111 | if (*mask) { | ||
112 | unsigned int tail; | ||
113 | tail = BITS_TO_LONGS(NR_CPUS - nr_cpumask_bits) * sizeof(long); | ||
114 | memset(cpumask_bits(*mask) + cpumask_size() - tail, | ||
115 | 0, tail); | ||
116 | } | ||
117 | |||
110 | return *mask != NULL; | 118 | return *mask != NULL; |
111 | } | 119 | } |
112 | EXPORT_SYMBOL(alloc_cpumask_var_node); | 120 | EXPORT_SYMBOL(alloc_cpumask_var_node); |