diff options
-rw-r--r-- | include/linux/cpumask.h | 11 | ||||
-rw-r--r-- | lib/Kconfig | 4 |
2 files changed, 14 insertions, 1 deletions
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h index 7c178a6baae3..9f315382610b 100644 --- a/include/linux/cpumask.h +++ b/include/linux/cpumask.h | |||
@@ -144,6 +144,7 @@ | |||
144 | typedef struct cpumask { DECLARE_BITMAP(bits, NR_CPUS); } cpumask_t; | 144 | typedef struct cpumask { DECLARE_BITMAP(bits, NR_CPUS); } cpumask_t; |
145 | extern cpumask_t _unused_cpumask_arg_; | 145 | extern cpumask_t _unused_cpumask_arg_; |
146 | 146 | ||
147 | #ifndef CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS | ||
147 | #define cpu_set(cpu, dst) __cpu_set((cpu), &(dst)) | 148 | #define cpu_set(cpu, dst) __cpu_set((cpu), &(dst)) |
148 | static inline void __cpu_set(int cpu, volatile cpumask_t *dstp) | 149 | static inline void __cpu_set(int cpu, volatile cpumask_t *dstp) |
149 | { | 150 | { |
@@ -267,6 +268,7 @@ static inline void __cpus_shift_left(cpumask_t *dstp, | |||
267 | { | 268 | { |
268 | bitmap_shift_left(dstp->bits, srcp->bits, n, nbits); | 269 | bitmap_shift_left(dstp->bits, srcp->bits, n, nbits); |
269 | } | 270 | } |
271 | #endif /* !CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS */ | ||
270 | 272 | ||
271 | /** | 273 | /** |
272 | * to_cpumask - convert an NR_CPUS bitmap to a struct cpumask * | 274 | * to_cpumask - convert an NR_CPUS bitmap to a struct cpumask * |
@@ -304,6 +306,7 @@ static inline const struct cpumask *get_cpu_mask(unsigned int cpu) | |||
304 | return to_cpumask(p); | 306 | return to_cpumask(p); |
305 | } | 307 | } |
306 | 308 | ||
309 | #ifndef CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS | ||
307 | /* | 310 | /* |
308 | * In cases where we take the address of the cpumask immediately, | 311 | * In cases where we take the address of the cpumask immediately, |
309 | * gcc optimizes it out (it's a constant) and there's no huge stack | 312 | * gcc optimizes it out (it's a constant) and there's no huge stack |
@@ -389,19 +392,22 @@ static inline void __cpus_fold(cpumask_t *dstp, const cpumask_t *origp, | |||
389 | { | 392 | { |
390 | bitmap_fold(dstp->bits, origp->bits, sz, nbits); | 393 | bitmap_fold(dstp->bits, origp->bits, sz, nbits); |
391 | } | 394 | } |
395 | #endif /* !CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS */ | ||
392 | 396 | ||
393 | #if NR_CPUS == 1 | 397 | #if NR_CPUS == 1 |
394 | 398 | ||
395 | #define nr_cpu_ids 1 | 399 | #define nr_cpu_ids 1 |
400 | #ifndef CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS | ||
396 | #define first_cpu(src) ({ (void)(src); 0; }) | 401 | #define first_cpu(src) ({ (void)(src); 0; }) |
397 | #define next_cpu(n, src) ({ (void)(src); 1; }) | 402 | #define next_cpu(n, src) ({ (void)(src); 1; }) |
398 | #define any_online_cpu(mask) 0 | 403 | #define any_online_cpu(mask) 0 |
399 | #define for_each_cpu_mask(cpu, mask) \ | 404 | #define for_each_cpu_mask(cpu, mask) \ |
400 | for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask) | 405 | for ((cpu) = 0; (cpu) < 1; (cpu)++, (void)mask) |
401 | 406 | #endif /* !CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS */ | |
402 | #else /* NR_CPUS > 1 */ | 407 | #else /* NR_CPUS > 1 */ |
403 | 408 | ||
404 | extern int nr_cpu_ids; | 409 | extern int nr_cpu_ids; |
410 | #ifndef CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS | ||
405 | int __first_cpu(const cpumask_t *srcp); | 411 | int __first_cpu(const cpumask_t *srcp); |
406 | int __next_cpu(int n, const cpumask_t *srcp); | 412 | int __next_cpu(int n, const cpumask_t *srcp); |
407 | int __any_online_cpu(const cpumask_t *mask); | 413 | int __any_online_cpu(const cpumask_t *mask); |
@@ -413,8 +419,10 @@ int __any_online_cpu(const cpumask_t *mask); | |||
413 | for ((cpu) = -1; \ | 419 | for ((cpu) = -1; \ |
414 | (cpu) = next_cpu((cpu), (mask)), \ | 420 | (cpu) = next_cpu((cpu), (mask)), \ |
415 | (cpu) < NR_CPUS; ) | 421 | (cpu) < NR_CPUS; ) |
422 | #endif /* !CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS */ | ||
416 | #endif | 423 | #endif |
417 | 424 | ||
425 | #ifndef CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS | ||
418 | #if NR_CPUS <= 64 | 426 | #if NR_CPUS <= 64 |
419 | 427 | ||
420 | #define next_cpu_nr(n, src) next_cpu(n, src) | 428 | #define next_cpu_nr(n, src) next_cpu(n, src) |
@@ -432,6 +440,7 @@ int __next_cpu_nr(int n, const cpumask_t *srcp); | |||
432 | (cpu) < nr_cpu_ids; ) | 440 | (cpu) < nr_cpu_ids; ) |
433 | 441 | ||
434 | #endif /* NR_CPUS > 64 */ | 442 | #endif /* NR_CPUS > 64 */ |
443 | #endif /* !CONFIG_DISABLE_OBSOLETE_CPUMASK_FUNCTIONS */ | ||
435 | 444 | ||
436 | /* | 445 | /* |
437 | * The following particular system cpumasks and operations manage | 446 | * The following particular system cpumasks and operations manage |
diff --git a/lib/Kconfig b/lib/Kconfig index fc5f5ee50bc2..03c2c24b9083 100644 --- a/lib/Kconfig +++ b/lib/Kconfig | |||
@@ -170,4 +170,8 @@ config CPUMASK_OFFSTACK | |||
170 | them on the stack. This is a bit more expensive, but avoids | 170 | them on the stack. This is a bit more expensive, but avoids |
171 | stack overflow. | 171 | stack overflow. |
172 | 172 | ||
173 | config DISABLE_OBSOLETE_CPUMASK_FUNCTIONS | ||
174 | bool "Disable obsolete cpumask functions" if DEBUG_PER_CPU_MAPS | ||
175 | depends on EXPERIMENTAL && BROKEN | ||
176 | |||
173 | endmenu | 177 | endmenu |