Re: [PATCH 1/2] kernel/{sched,smp}.c: fix static decl prior tostruct declaration

From: Ingo Molnar
Date: Fri May 08 2009 - 15:05:31 EST



* Jeff Garzik <jeff@xxxxxxxxxx> wrote:

> According to C99 6.9.2p3, any declaration "static struct foo my_foo;"
> must follow the definition of struct foo.
>
> Apparently, gcc's lack of warning is a bug.
>
> Signed-off-by: Jeff Garzik <jgarzik@xxxxxxxxxx>

good spotting, i'll apply this fix, but:

> */
> struct task_group root_task_group;
>
> -#ifdef CONFIG_FAIR_GROUP_SCHED
> -/* Default task group's sched entity on each cpu */
> -static DEFINE_PER_CPU(struct sched_entity, init_sched_entity);
> -/* Default task group's cfs_rq on each cpu */
> -static DEFINE_PER_CPU(struct cfs_rq, init_cfs_rq) ____cacheline_aligned_in_smp;
> -#endif /* CONFIG_FAIR_GROUP_SCHED */
> -
> -#ifdef CONFIG_RT_GROUP_SCHED
> -static DEFINE_PER_CPU(struct sched_rt_entity, init_sched_rt_entity);
> -static DEFINE_PER_CPU(struct rt_rq, init_rt_rq) ____cacheline_aligned_in_smp;
> -#endif /* CONFIG_RT_GROUP_SCHED */
> -#else /* !CONFIG_USER_SCHED */
> -#define root_task_group init_task_group
> -#endif /* CONFIG_USER_SCHED */
> -
> /* task_group_lock serializes add/remove of task groups and also changes to

This block has a visible imbalance of preprocessor directives -
there's a #else you moved, without moving the outermost #ifdef. My
guess is that this will go down in a fireball with
CONFIG_GROUP_SCHED disabled?

Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/