sched/topology: Move sd_flag_debug out of linux/sched/topology.h
authorValentin Schneider <valentin.schneider@arm.com>
Tue, 25 Aug 2020 13:32:15 +0000 (14:32 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Wed, 26 Aug 2020 10:41:59 +0000 (12:41 +0200)
Defining an array in a header imported all over the place clearly is a daft
idea, that still didn't stop me from doing it.

Leave a declaration of sd_flag_debug in topology.h and move its definition
to sched/debug.c.

Fixes: b6e862f38672 ("sched/topology: Define and assign sched_domain flag metadata")
Reported-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20200825133216.9163-1-valentin.schneider@arm.com
include/linux/sched/topology.h
kernel/sched/debug.c

index 2d59ca77103ef420b7240ac06f7bb8026f5d3976..b9b0dab4d067895d0388dc592912c1f070cf293e 100644 (file)
@@ -33,14 +33,13 @@ static const unsigned int SD_DEGENERATE_GROUPS_MASK =
 #undef SD_FLAG
 
 #ifdef CONFIG_SCHED_DEBUG
-#define SD_FLAG(_name, mflags) [__##_name] = { .meta_flags = mflags, .name = #_name },
-static const struct {
+
+struct sd_flag_debug {
        unsigned int meta_flags;
        char *name;
-} sd_flag_debug[] = {
-#include <linux/sched/sd_flags.h>
 };
-#undef SD_FLAG
+extern const struct sd_flag_debug sd_flag_debug[];
+
 #endif
 
 #ifdef CONFIG_SCHED_SMT
index 0655524700d24d8e5ab6101452acb6c9b5fdea27..0d7896d2a0b233e00ccad6f5ab245c1c04677bdb 100644 (file)
@@ -245,6 +245,12 @@ set_table_entry(struct ctl_table *entry,
        entry->proc_handler = proc_handler;
 }
 
+#define SD_FLAG(_name, mflags) [__##_name] = { .meta_flags = mflags, .name = #_name },
+const struct sd_flag_debug sd_flag_debug[] = {
+#include <linux/sched/sd_flags.h>
+};
+#undef SD_FLAG
+
 static int sd_ctl_doflags(struct ctl_table *table, int write,
                          void *buffer, size_t *lenp, loff_t *ppos)
 {