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 #define cpumask_any_and(mask1, mask2) cpumask_first_and((mask1), (mask2)) 895 896 /** 897 * to_cpumask - convert an NR_CPUS bitmap to a struct cpumask * 898 * @bitmap: the bitmap 899 * ··· 952 bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags); 953 void alloc_bootmem_cpumask_var(cpumask_var_t *mask); 954 void free_cpumask_var(cpumask_var_t mask); 955 956 #else 957 typedef struct cpumask cpumask_var_t[1]; ··· 967 } 968 969 static inline void free_cpumask_var(cpumask_var_t mask) 970 { 971 } 972 #endif /* CONFIG_CPUMASK_OFFSTACK */
··· 894 #define cpumask_any_and(mask1, mask2) cpumask_first_and((mask1), (mask2)) 895 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 + /** 903 * to_cpumask - convert an NR_CPUS bitmap to a struct cpumask * 904 * @bitmap: the bitmap 905 * ··· 946 bool alloc_cpumask_var(cpumask_var_t *mask, gfp_t flags); 947 void alloc_bootmem_cpumask_var(cpumask_var_t *mask); 948 void free_cpumask_var(cpumask_var_t mask); 949 + void free_bootmem_cpumask_var(cpumask_var_t mask); 950 951 #else 952 typedef struct cpumask cpumask_var_t[1]; ··· 960 } 961 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) 967 { 968 } 969 #endif /* CONFIG_CPUMASK_OFFSTACK */
+5
lib/cpumask.c
··· 107 kfree(mask); 108 } 109 EXPORT_SYMBOL(free_cpumask_var); 110 #endif
··· 107 kfree(mask); 108 } 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 + } 115 #endif