cpumask: make set_cpu_*/init_cpu_* out-of-line
They're only for use in boot/cpu hotplug code anyway, and this avoids the use of deprecated cpu_*_map. Stephen Rothwell points out that gcc 4.2.4 (on powerpc at least) didn't like the cast away of const anyway: include/linux/cpumask.h: In function 'set_cpu_possible': include/linux/cpumask.h:1052: warning: passing argument 2 of 'cpumask_set_cpu' discards qualifiers from pointer target type So this kills two birds with one stone. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
ae7a47e72e
commit
3fa4152069
2 changed files with 54 additions and 46 deletions
|
@ -1057,50 +1057,11 @@ extern const DECLARE_BITMAP(cpu_all_bits, NR_CPUS);
|
||||||
#define for_each_present_cpu(cpu) for_each_cpu((cpu), cpu_present_mask)
|
#define for_each_present_cpu(cpu) for_each_cpu((cpu), cpu_present_mask)
|
||||||
|
|
||||||
/* Wrappers for arch boot code to manipulate normally-constant masks */
|
/* Wrappers for arch boot code to manipulate normally-constant masks */
|
||||||
static inline void set_cpu_possible(unsigned int cpu, bool possible)
|
void set_cpu_possible(unsigned int cpu, bool possible);
|
||||||
{
|
void set_cpu_present(unsigned int cpu, bool present);
|
||||||
if (possible)
|
void set_cpu_online(unsigned int cpu, bool online);
|
||||||
cpumask_set_cpu(cpu, &cpu_possible_map);
|
void set_cpu_active(unsigned int cpu, bool active);
|
||||||
else
|
void init_cpu_present(const struct cpumask *src);
|
||||||
cpumask_clear_cpu(cpu, &cpu_possible_map);
|
void init_cpu_possible(const struct cpumask *src);
|
||||||
}
|
void init_cpu_online(const struct cpumask *src);
|
||||||
|
|
||||||
static inline void set_cpu_present(unsigned int cpu, bool present)
|
|
||||||
{
|
|
||||||
if (present)
|
|
||||||
cpumask_set_cpu(cpu, &cpu_present_map);
|
|
||||||
else
|
|
||||||
cpumask_clear_cpu(cpu, &cpu_present_map);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void set_cpu_online(unsigned int cpu, bool online)
|
|
||||||
{
|
|
||||||
if (online)
|
|
||||||
cpumask_set_cpu(cpu, &cpu_online_map);
|
|
||||||
else
|
|
||||||
cpumask_clear_cpu(cpu, &cpu_online_map);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void set_cpu_active(unsigned int cpu, bool active)
|
|
||||||
{
|
|
||||||
if (active)
|
|
||||||
cpumask_set_cpu(cpu, &cpu_active_map);
|
|
||||||
else
|
|
||||||
cpumask_clear_cpu(cpu, &cpu_active_map);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void init_cpu_present(const struct cpumask *src)
|
|
||||||
{
|
|
||||||
cpumask_copy(&cpu_present_map, src);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void init_cpu_possible(const struct cpumask *src)
|
|
||||||
{
|
|
||||||
cpumask_copy(&cpu_possible_map, src);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void init_cpu_online(const struct cpumask *src)
|
|
||||||
{
|
|
||||||
cpumask_copy(&cpu_online_map, src);
|
|
||||||
}
|
|
||||||
#endif /* __LINUX_CPUMASK_H */
|
#endif /* __LINUX_CPUMASK_H */
|
||||||
|
|
47
kernel/cpu.c
47
kernel/cpu.c
|
@ -500,3 +500,50 @@ EXPORT_SYMBOL(cpu_present_mask);
|
||||||
static DECLARE_BITMAP(cpu_active_bits, CONFIG_NR_CPUS) __read_mostly;
|
static DECLARE_BITMAP(cpu_active_bits, CONFIG_NR_CPUS) __read_mostly;
|
||||||
const struct cpumask *const cpu_active_mask = to_cpumask(cpu_active_bits);
|
const struct cpumask *const cpu_active_mask = to_cpumask(cpu_active_bits);
|
||||||
EXPORT_SYMBOL(cpu_active_mask);
|
EXPORT_SYMBOL(cpu_active_mask);
|
||||||
|
|
||||||
|
void set_cpu_possible(unsigned int cpu, bool possible)
|
||||||
|
{
|
||||||
|
if (possible)
|
||||||
|
cpumask_set_cpu(cpu, to_cpumask(cpu_possible_bits));
|
||||||
|
else
|
||||||
|
cpumask_clear_cpu(cpu, to_cpumask(cpu_possible_bits));
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_cpu_present(unsigned int cpu, bool present)
|
||||||
|
{
|
||||||
|
if (present)
|
||||||
|
cpumask_set_cpu(cpu, to_cpumask(cpu_present_bits));
|
||||||
|
else
|
||||||
|
cpumask_clear_cpu(cpu, to_cpumask(cpu_present_bits));
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_cpu_online(unsigned int cpu, bool online)
|
||||||
|
{
|
||||||
|
if (online)
|
||||||
|
cpumask_set_cpu(cpu, to_cpumask(cpu_online_bits));
|
||||||
|
else
|
||||||
|
cpumask_clear_cpu(cpu, to_cpumask(cpu_online_bits));
|
||||||
|
}
|
||||||
|
|
||||||
|
void set_cpu_active(unsigned int cpu, bool active)
|
||||||
|
{
|
||||||
|
if (active)
|
||||||
|
cpumask_set_cpu(cpu, to_cpumask(cpu_active_bits));
|
||||||
|
else
|
||||||
|
cpumask_clear_cpu(cpu, to_cpumask(cpu_active_bits));
|
||||||
|
}
|
||||||
|
|
||||||
|
void init_cpu_present(const struct cpumask *src)
|
||||||
|
{
|
||||||
|
cpumask_copy(to_cpumask(cpu_present_bits), src);
|
||||||
|
}
|
||||||
|
|
||||||
|
void init_cpu_possible(const struct cpumask *src)
|
||||||
|
{
|
||||||
|
cpumask_copy(to_cpumask(cpu_possible_bits), src);
|
||||||
|
}
|
||||||
|
|
||||||
|
void init_cpu_online(const struct cpumask *src)
|
||||||
|
{
|
||||||
|
cpumask_copy(to_cpumask(cpu_online_bits), src);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue