sched: clean up SCHED_CPUMASK_ALLOC
Impact: cleanup The #if/#endif is ugly. Change SCHED_CPUMASK_ALLOC and SCHED_CPUMASK_FREE to static inline functions. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Родитель
258594a138
Коммит
6d21cd6251
|
@ -7279,13 +7279,21 @@ struct allmasks {
|
|||
};
|
||||
|
||||
#if NR_CPUS > 128
|
||||
#define SCHED_CPUMASK_ALLOC 1
|
||||
#define SCHED_CPUMASK_FREE(v) kfree(v)
|
||||
#define SCHED_CPUMASK_DECLARE(v) struct allmasks *v
|
||||
static inline void sched_cpumask_alloc(struct allmasks **masks)
|
||||
{
|
||||
*masks = kmalloc(sizeof(**masks), GFP_KERNEL);
|
||||
}
|
||||
static inline void sched_cpumask_free(struct allmasks *masks)
|
||||
{
|
||||
kfree(masks);
|
||||
}
|
||||
#else
|
||||
#define SCHED_CPUMASK_ALLOC 0
|
||||
#define SCHED_CPUMASK_FREE(v)
|
||||
#define SCHED_CPUMASK_DECLARE(v) struct allmasks _v, *v = &_v
|
||||
static inline void sched_cpumask_alloc(struct allmasks **masks)
|
||||
{ }
|
||||
static inline void sched_cpumask_free(struct allmasks *masks)
|
||||
{ }
|
||||
#endif
|
||||
|
||||
#define SCHED_CPUMASK_VAR(v, a) cpumask_t *v = (cpumask_t *) \
|
||||
|
@ -7361,9 +7369,8 @@ static int __build_sched_domains(const cpumask_t *cpu_map,
|
|||
return -ENOMEM;
|
||||
}
|
||||
|
||||
#if SCHED_CPUMASK_ALLOC
|
||||
/* get space for all scratch cpumask variables */
|
||||
allmasks = kmalloc(sizeof(*allmasks), GFP_KERNEL);
|
||||
sched_cpumask_alloc(&allmasks);
|
||||
if (!allmasks) {
|
||||
printk(KERN_WARNING "Cannot alloc cpumask array\n");
|
||||
kfree(rd);
|
||||
|
@ -7372,7 +7379,7 @@ static int __build_sched_domains(const cpumask_t *cpu_map,
|
|||
#endif
|
||||
return -ENOMEM;
|
||||
}
|
||||
#endif
|
||||
|
||||
tmpmask = (cpumask_t *)allmasks;
|
||||
|
||||
|
||||
|
@ -7626,13 +7633,13 @@ static int __build_sched_domains(const cpumask_t *cpu_map,
|
|||
cpu_attach_domain(sd, rd, i);
|
||||
}
|
||||
|
||||
SCHED_CPUMASK_FREE((void *)allmasks);
|
||||
sched_cpumask_free(allmasks);
|
||||
return 0;
|
||||
|
||||
#ifdef CONFIG_NUMA
|
||||
error:
|
||||
free_sched_groups(cpu_map, tmpmask);
|
||||
SCHED_CPUMASK_FREE((void *)allmasks);
|
||||
sched_cpumask_free(allmasks);
|
||||
kfree(rd);
|
||||
return -ENOMEM;
|
||||
#endif
|
||||
|
|
Загрузка…
Ссылка в новой задаче