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:
pgpv5csIRe7Xc.pgp
Description: OpenPGP digital signature