summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2015-06-10 06:47:06 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2015-06-11 07:46:36 +0200
commitdae7498d2c49f812d513123908074f577e86efee (patch)
tree6dd959c3f91183868bda577e513c52b3f9e7623a
parente349701487198df5d029621f440004b5a46529f5 (diff)
downloadbarebox-dae7498d2c49f812d513123908074f577e86efee.tar.gz
barebox-dae7498d2c49f812d513123908074f577e86efee.tar.xz
clk: of: fix clk_of_table generation
We used to collect all sections beginning with __clk_of_table_ in a single section in the linker using KEEP(*(.__clk_of_table_*)). That the sentinel entry ended up as the last entry was pure luck, but not always the case. Instead of putting all entries in different sections we now put all entries in the same section. Only the sentinel entry gets its own section and is collected by the linker separately. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Reported-by: Andreas Willig <andreas.willig@rafi.de> Tested-by: Andreas Willig <andreas.willig@rafi.de>
-rw-r--r--include/asm-generic/barebox.lds.h3
-rw-r--r--include/linux/clk.h2
2 files changed, 3 insertions, 2 deletions
diff --git a/include/asm-generic/barebox.lds.h b/include/asm-generic/barebox.lds.h
index 254397ee97..00d6ecaf54 100644
--- a/include/asm-generic/barebox.lds.h
+++ b/include/asm-generic/barebox.lds.h
@@ -47,7 +47,8 @@
#define BAREBOX_CLK_TABLE() \
. = ALIGN(8); \
__clk_of_table_start = .; \
- KEEP(*(.__clk_of_table_*)); \
+ KEEP(*(.__clk_of_table)); \
+ KEEP(*(.__clk_of_table_end)); \
__clk_of_table_end = .;
#define BAREBOX_DTB() \
diff --git a/include/linux/clk.h b/include/linux/clk.h
index 4aeec63a84..7a0ee110e4 100644
--- a/include/linux/clk.h
+++ b/include/linux/clk.h
@@ -321,7 +321,7 @@ struct of_phandle_args;
#define CLK_OF_DECLARE(name, compat, fn) \
const struct of_device_id __clk_of_table_##name \
-__attribute__ ((unused,section (".__clk_of_table_" __stringify(name)))) \
+__attribute__ ((unused,section (".__clk_of_table"))) \
= { .compatible = compat, .data = fn }
#if defined(CONFIG_OFTREE) && defined(CONFIG_COMMON_CLK_OF_PROVIDER)