diff options
-rw-r--r-- | include/linux/cpumask.h | 15 | ||||
-rw-r--r-- | lib/cpumask.c | 12 |
2 files changed, 27 insertions, 0 deletions
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index 9f315382610b..c5ac87ca7bc6 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h | |||
@@ -1022,6 +1022,8 @@ typedef struct cpumask *cpumask_var_t; | |||
1022 | 1022 | ||
1023 | bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node); | 1023 | bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node); |
1024 | bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags); | 1024 | bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags); |
1025 | bool zalloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node); | ||
1026 | bool zalloc_cpumask_var(cpumask_var_t *mask, gfp_t flags); | ||
1025 | void alloc_bootmem_cpumask_var(cpumask_var_t *mask); | 1027 | void alloc_bootmem_cpumask_var(cpumask_var_t *mask); |
1026 | void free_cpumask_var(cpumask_var_t mask); | 1028 | void free_cpumask_var(cpumask_var_t mask); |
1027 | void free_bootmem_cpumask_var(cpumask_var_t mask); | 1029 | void free_bootmem_cpumask_var(cpumask_var_t mask); |
@@ -1040,6 +1042,19 @@ static inline bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, | |||
1040 | return true; | 1042 | return true; |
1041 | } | 1043 | } |
1042 | 1044 | ||
1045 | static inline bool zalloc_cpumask_var(cpumask_var_t *mask, gfp_t flags) | ||
1046 | { | ||
1047 | cpumask_clear(*mask); | ||
1048 | return true; | ||
1049 | } | ||
1050 | |||
1051 | static inline bool zalloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, | ||
1052 | int node) | ||
1053 | { | ||
1054 | cpumask_clear(*mask); | ||
1055 | return true; | ||
1056 | } | ||
1057 | |||
1043 | static inline void alloc_bootmem_cpumask_var(cpumask_var_t *mask) | 1058 | static inline void alloc_bootmem_cpumask_var(cpumask_var_t *mask) |
1044 | { | 1059 | { |
1045 | } | 1060 | } |
diff --git a/lib/cpumask.c b/lib/cpumask.c index 1f71b97de0f9..eb23aaa0c7b8 100644 --- a/lib/cpumask.c +++ b/lib/cpumask.c | |||
@@ -119,6 +119,12 @@ bool alloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node) | |||
119 | } | 119 | } |
120 | EXPORT_SYMBOL(alloc_cpumask_var_node); | 120 | EXPORT_SYMBOL(alloc_cpumask_var_node); |
121 | 121 | ||
122 | bool zalloc_cpumask_var_node(cpumask_var_t *mask, gfp_t flags, int node) | ||
123 | { | ||
124 | return alloc_cpumask_var_node(mask, flags | __GFP_ZERO, node); | ||
125 | } | ||
126 | EXPORT_SYMBOL(zalloc_cpumask_var_node); | ||
127 | |||
122 | /** | 128 | /** |
123 | * alloc_cpumask_var - allocate a struct cpumask | 129 | * alloc_cpumask_var - allocate a struct cpumask |
124 | * @mask: pointer to cpumask_var_t where the cpumask is returned | 130 | * @mask: pointer to cpumask_var_t where the cpumask is returned |
@@ -135,6 +141,12 @@ bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags) | |||
135 | } | 141 | } |
136 | EXPORT_SYMBOL(alloc_cpumask_var); | 142 | EXPORT_SYMBOL(alloc_cpumask_var); |
137 | 143 | ||
144 | bool zalloc_cpumask_var(cpumask_var_t *mask, gfp_t flags) | ||
145 | { | ||
146 | return alloc_cpumask_var(mask, flags | __GFP_ZERO); | ||
147 | } | ||
148 | EXPORT_SYMBOL(zalloc_cpumask_var); | ||
149 | |||
138 | /** | 150 | /** |
139 | * alloc_bootmem_cpumask_var - allocate a struct cpumask from the bootmem arena. | 151 | * alloc_bootmem_cpumask_var - allocate a struct cpumask from the bootmem arena. |
140 | * @mask: pointer to cpumask_var_t where the cpumask is returned | 152 | * @mask: pointer to cpumask_var_t where the cpumask is returned |