mirror of
https://github.com/adulau/aha.git
synced 2024-12-29 12:16:20 +00:00
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:
parent
258594a138
commit
6d21cd6251
1 changed files with 18 additions and 11 deletions
|
@ -7279,13 +7279,21 @@ struct allmasks {
|
||||||
};
|
};
|
||||||
|
|
||||||
#if NR_CPUS > 128
|
#if NR_CPUS > 128
|
||||||
#define SCHED_CPUMASK_ALLOC 1
|
|
||||||
#define SCHED_CPUMASK_FREE(v) kfree(v)
|
|
||||||
#define SCHED_CPUMASK_DECLARE(v) struct allmasks *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
|
#else
|
||||||
#define SCHED_CPUMASK_ALLOC 0
|
|
||||||
#define SCHED_CPUMASK_FREE(v)
|
|
||||||
#define SCHED_CPUMASK_DECLARE(v) struct allmasks _v, *v = &_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
|
#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
|
||||||
|
|
Loading…
Reference in a new issue