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 7c178a6baae..9f315382610 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 fc5f5ee50bc..03c2c24b908 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 |
