sched: Fix DEBUG && !SCHEDSTATS warn
authorPeter Zijlstra <peterz@infradead.org>
Wed, 6 Oct 2021 08:12:05 +0000 (10:12 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 6 Oct 2021 08:30:57 +0000 (10:30 +0200)
When !SCHEDSTATS schedstat_enabled() is an unconditional 0 and the
whole block doesn't exist, however GCC figures the scoped variable
'stats' is unused and complains about it.

Upgrade the warning from -Wunused-variable to -Wunused-but-set-variable
by writing it in two statements. This fixes the build because the new
warning is in W=1.

Given that whole if(0) {} thing, I don't feel motivated to change
things overly much and quite strongly feel this is the compiler being
daft.

Fixes: cb3e971c435d ("sched: Make struct sched_statistics independent of fair sched class")
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
kernel/sched/debug.c

index 26fac5e..7dcbaa3 100644 (file)
@@ -463,7 +463,8 @@ static void print_cfs_group_stats(struct seq_file *m, int cpu, struct task_group
        PN(se->sum_exec_runtime);
 
        if (schedstat_enabled()) {
-               struct sched_statistics *stats =  __schedstats_from_se(se);
+               struct sched_statistics *stats;
+               stats = __schedstats_from_se(se);
 
                PN_SCHEDSTAT(wait_start);
                PN_SCHEDSTAT(sleep_start);