On Thu, Jun 28, 2018 at 12:40:36PM +0100, Quentin Perret wrote: > diff --git a/kernel/sched/topology.c b/kernel/sched/topology.c > index 61a1125c1ae4..357eff55c1a7 100644 > --- a/kernel/sched/topology.c > +++ b/kernel/sched/topology.c > @@ -201,6 +201,19 @@ sd_parent_degenerate(struct sched_domain *sd, struct > sched_domain *parent) > return 1; > } > > +#ifdef CONFIG_ENERGY_MODEL > +static void free_fd(struct freq_domain *fd) > +{ > + struct freq_domain *tmp; > + > + while (fd) { > + tmp = fd->next; > + kfree(fd); > + fd = tmp; > + } > +} > +#endif > + > static void free_rootdomain(struct rcu_head *rcu) > { > struct root_domain *rd = container_of(rcu, struct root_domain, rcu); > @@ -211,6 +224,9 @@ static void free_rootdomain(struct rcu_head *rcu) > free_cpumask_var(rd->rto_mask); > free_cpumask_var(rd->online); > free_cpumask_var(rd->span); > +#ifdef CONFIG_ENERGY_MODEL > + free_fd(rd->fd); > +#endif
If you provide a stub function, you can reduce #ifdef. > kfree(rd); > } > > @@ -1635,6 +1651,104 @@ static struct sched_domain *build_sched_domain(struct > sched_domain_topology_leve > return sd; > } > > +#ifdef CONFIG_ENERGY_MODEL < snip content > > +#endif And is there any reason this #ifdef cannot be merged with the one above? That is, try and do a pass of #ifdef reduction on this file.