cpumask: new API, v2

- add cpumask_of()
- add free_bootmem_cpumask_var()

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

authored by Rusty Russell and committed by Ingo Molnar cd83e42c 2d3854a3

+16
+11
include/linux/cpumask.h
··· 894 894 #define cpumask_any_and(mask1, mask2) cpumask_first_and((mask1), (mask2)) 895 895 896 896 /** 897 + * cpumask_of - the cpumask containing just a given cpu 898 + * @cpu: the cpu (<= nr_cpu_ids) 899 + */ 900 + #define cpumask_of(cpu) (get_cpu_mask(cpu)) 901 + 902 + /** 897 903 * to_cpumask - convert an NR_CPUS bitmap to a struct cpumask * 898 904 * @bitmap: the bitmap 899 905 * ··· 952 946 bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags); 953 947 void alloc_bootmem_cpumask_var(cpumask_var_t *mask); 954 948 void free_cpumask_var(cpumask_var_t mask); 949 + void free_bootmem_cpumask_var(cpumask_var_t mask); 955 950 956 951 #else 957 952 typedef struct cpumask cpumask_var_t[1]; ··· 967 960 } 968 961 969 962 static inline void free_cpumask_var(cpumask_var_t mask) 963 + { 964 + } 965 + 966 + static inline void free_bootmem_cpumask_var(cpumask_var_t mask) 970 967 { 971 968 } 972 969 #endif /* CONFIG_CPUMASK_OFFSTACK */
+5
lib/cpumask.c
··· 107 107 kfree(mask); 108 108 } 109 109 EXPORT_SYMBOL(free_cpumask_var); 110 + 111 + void free_bootmem_cpumask_var(cpumask_var_t mask) 112 + { 113 + free_bootmem((unsigned long)mask, cpumask_size()); 114 + } 110 115 #endif