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:
Li Zefan 2008-11-07 17:03:18 +08:00 committed by Ingo Molnar
parent 258594a138
commit 6d21cd6251
1 changed files with 18 additions and 11 deletions

View File

@ -7279,13 +7279,21 @@ struct allmasks {
}; };
#if NR_CPUS > 128 #if NR_CPUS > 128
#define SCHED_CPUMASK_ALLOC 1 #define SCHED_CPUMASK_DECLARE(v) struct allmasks *v
#define SCHED_CPUMASK_FREE(v) kfree(v) static inline void sched_cpumask_alloc(struct allmasks **masks)
#define SCHED_CPUMASK_DECLARE(v) struct allmasks *v {
*masks = kmalloc(sizeof(**masks), GFP_KERNEL);
}
static inline void sched_cpumask_free(struct allmasks *masks)
{
kfree(masks);
}
#else #else
#define SCHED_CPUMASK_ALLOC 0 #define SCHED_CPUMASK_DECLARE(v) struct allmasks _v, *v = &_v
#define SCHED_CPUMASK_FREE(v) static inline void sched_cpumask_alloc(struct allmasks **masks)
#define SCHED_CPUMASK_DECLARE(v) struct allmasks _v, *v = &_v { }
static inline void sched_cpumask_free(struct allmasks *masks)
{ }
#endif #endif
#define SCHED_CPUMASK_VAR(v, a) cpumask_t *v = (cpumask_t *) \ #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; return -ENOMEM;
} }
#if SCHED_CPUMASK_ALLOC
/* get space for all scratch cpumask variables */ /* get space for all scratch cpumask variables */
allmasks = kmalloc(sizeof(*allmasks), GFP_KERNEL); sched_cpumask_alloc(&allmasks);
if (!allmasks) { if (!allmasks) {
printk(KERN_WARNING "Cannot alloc cpumask array\n"); printk(KERN_WARNING "Cannot alloc cpumask array\n");
kfree(rd); kfree(rd);
@ -7372,7 +7379,7 @@ static int __build_sched_domains(const cpumask_t *cpu_map,
#endif #endif
return -ENOMEM; return -ENOMEM;
} }
#endif
tmpmask = (cpumask_t *)allmasks; tmpmask = (cpumask_t *)allmasks;
@ -7626,13 +7633,13 @@ static int __build_sched_domains(const cpumask_t *cpu_map,
cpu_attach_domain(sd, rd, i); cpu_attach_domain(sd, rd, i);
} }
SCHED_CPUMASK_FREE((void *)allmasks); sched_cpumask_free(allmasks);
return 0; return 0;
#ifdef CONFIG_NUMA #ifdef CONFIG_NUMA
error: error:
free_sched_groups(cpu_map, tmpmask); free_sched_groups(cpu_map, tmpmask);
SCHED_CPUMASK_FREE((void *)allmasks); sched_cpumask_free(allmasks);
kfree(rd); kfree(rd);
return -ENOMEM; return -ENOMEM;
#endif #endif