[PATCH] clk: of: fix clk_of_table generation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx>
Reported-by: Andreas Willig <andreas.willig@xxxxxxx>
---
 include/asm-generic/barebox.lds.h | 3 ++-
 include/linux/clk.h               | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/include/asm-generic/barebox.lds.h b/include/asm-generic/barebox.lds.h
index 254397e..00d6eca 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 4aeec63..7a0ee11 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)
-- 
2.1.4


_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox




[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux