diff options
| -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); |
