Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752357AbeAEU0u (ORCPT + 1 other); Fri, 5 Jan 2018 15:26:50 -0500 Received: from mail.kernel.org ([198.145.29.99]:60828 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751482AbeAEU0s (ORCPT ); Fri, 5 Jan 2018 15:26:48 -0500 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DA5A5205F4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=robh+dt@kernel.org X-Google-Smtp-Source: ACJfBovPH64PF966arfYxSDs85IZOKfGfUxxp2YqzXVxI7vXzXDFsd/2UF8VSIFtDCBNIIE5fcmcxyEVDRe47PjGlK0= MIME-Version: 1.0 In-Reply-To: <1515056916-6411-1-git-send-email-geert+renesas@glider.be> References: <1515056916-6411-1-git-send-email-geert+renesas@glider.be> From: Rob Herring Date: Fri, 5 Jan 2018 14:26:26 -0600 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2] of/fdt: Fix #ifdef dependency of early flattree declarations To: Geert Uytterhoeven Cc: Frank Rowand , Pantelis Antoniou , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , "linux-kernel@vger.kernel.org" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On Thu, Jan 4, 2018 at 3:08 AM, Geert Uytterhoeven wrote: > If OF_FLATTREE=y, but OF_EARLY_FLATTREE=n: > > drivers/tty/serial/earlycon.o: In function `param_setup_earlycon': > earlycon.c:(.init.text+0x3a4): undefined reference to `early_init_dt_scan_chosen_stdout' > > Fix this by moving the early flattree forward declarations and dummy > implementations inside an #ifdef CONFIG_OF_EARLY_FLATTREE block. > > Signed-off-by: Geert Uytterhoeven > --- > Seen after forcing OF_FLATTREE=y on sparc64 allmodconfig > (Hi, out-of-tree OF_CONFIGFS!). > > v2: > - Move "#ifdef CONFIG_OF_EARLY_FLATTREE" section outside "#ifdef > CONFIG_OF_FLATTREE" section to provide dummies if !OF_FLATTREE, > - Move architecture-specific early_init_devtree() and > early_get_first_memblock_info() inside "#ifdef > CONFIG_OF_EARLY_FLATTREE" section. > --- > include/linux/of_fdt.h | 12 ++++++++---- > 1 file changed, 8 insertions(+), 4 deletions(-) > > diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h > index 013c5418aeecfdbd..444e6e283828a27e 100644 > --- a/include/linux/of_fdt.h > +++ b/include/linux/of_fdt.h > @@ -47,6 +47,12 @@ extern void *initial_boot_params; > extern char __dtb_start[]; > extern char __dtb_end[]; > > +/* Other Prototypes */ > +extern u64 of_flat_dt_translate_address(unsigned long node); > +extern void of_fdt_limit_memory(int limit); > +#endif /* CONFIG_OF_FLATTREE */ > + > +#ifdef CONFIG_OF_EARLY_FLATTREE > /* For scanning the flat device-tree at boot time */ > extern int of_scan_flat_dt(int (*it)(unsigned long node, const char *uname, > int depth, void *data), > @@ -97,16 +103,14 @@ extern void unflatten_device_tree(void); > extern void unflatten_and_copy_device_tree(void); > extern void early_init_devtree(void *); > extern void early_get_first_memblock_info(void *, phys_addr_t *); > -extern u64 of_flat_dt_translate_address(unsigned long node); > -extern void of_fdt_limit_memory(int limit); > -#else /* CONFIG_OF_FLATTREE */ > +#else /* CONFIG_OF_EARLY_FLATTREE */ > static inline int early_init_dt_scan_chosen_stdout(void) { return -ENODEV; } > static inline void early_init_fdt_scan_reserved_mem(void) {} > static inline void early_init_fdt_reserve_self(void) {} > static inline const char *of_flat_dt_get_machine_name(void) { return NULL; } > static inline void unflatten_device_tree(void) {} > static inline void unflatten_and_copy_device_tree(void) {} > -#endif /* CONFIG_OF_FLATTREE */ > +#endif /* CONFIG_OF_EARLY_FLATTREE */ Really, I think most of these shouldn't need dummy versions as they are called from DT only code, but I guess we had some need to have them. Ideally, we'd also remove some of these and avoid any arch specific code, but looks like most do get used. I do see some further memblock/bootmem clean-up we can do. Anyway, it better than it was with your change, so I've applied it. Rob