Re: linux-next: build warnings after merge of the devicetree tree

From: Stephen Rothwell
Date: Tue Sep 04 2018 - 21:54:24 EST


Hi all,

On Wed, 5 Sep 2018 10:39:06 +1000 Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
>
> After merging the devicetree tree, today's linux-next build (x86_64
> allmodconfig) produced these warnings:
>
> WARNING: vmlinux.o(.text+0xf40a16): Section mismatch in reference from the function of_fdt_limit_memory() to the variable .init.data:dt_root_addr_cells
> The function of_fdt_limit_memory() references
> the variable __initdata dt_root_addr_cells.
> This is often because of_fdt_limit_memory lacks a __initdata
> annotation or the annotation of dt_root_addr_cells is wrong.
>
> WARNING: vmlinux.o(.text+0xf40a1d): Section mismatch in reference from the function of_fdt_limit_memory() to the variable .init.data:dt_root_size_cells
> The function of_fdt_limit_memory() references
> the variable __initdata dt_root_size_cells.
> This is often because of_fdt_limit_memory lacks a __initdata
> annotation or the annotation of dt_root_size_cells is wrong.
>
> Introduced by commit
>
> bb35ea5c7c30 ("of/fdt: avoid re-parsing '#{address,size}-cells' in of_fdt_limit_memory")

It turns out that section mismatches are fatal errors in some configs (like powerpc allnoconfig), so I have added the following patch for today:

From: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Date: Wed, 5 Sep 2018 11:50:29 +1000
Subject: [PATCH] mark of_fdt_limit_memory() as __init

Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
---
drivers/of/fdt.c | 2 +-
include/linux/of_fdt.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index fef4b2c8a171..fe78bed8925f 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -39,7 +39,7 @@
* memory entries in the /memory node. This function may be called
* any time after initial_boot_param is set.
*/
-void of_fdt_limit_memory(int limit)
+void __init of_fdt_limit_memory(int limit)
{
int memory;
int len;
diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h
index b9cd9ebdf9b9..19ebf22a7862 100644
--- a/include/linux/of_fdt.h
+++ b/include/linux/of_fdt.h
@@ -46,7 +46,7 @@ extern char __dtb_end[];

/* Other Prototypes */
extern u64 of_flat_dt_translate_address(unsigned long node);
-extern void of_fdt_limit_memory(int limit);
+extern void __init of_fdt_limit_memory(int limit);
#endif /* CONFIG_OF_FLATTREE */

#ifdef CONFIG_OF_EARLY_FLATTREE
--
2.18.0

--
Cheers,
Stephen Rothwell

Attachment: pgpJ7U7hSEbSa.pgp
Description: OpenPGP digital signature