From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Morton Subject: Re: next-20151210 build: 4 failures 43 warnings (next-20151210) Date: Thu, 10 Dec 2015 14:47:08 -0800 Message-ID: <20151210144708.65b7111eb795ddabbfad1ed3@linux-foundation.org> References: <20151210165513.GO5727@sirena.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Return-path: Received: from mail.linuxfoundation.org ([140.211.169.12]:41831 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754211AbbLJWrK (ORCPT ); Thu, 10 Dec 2015 17:47:10 -0500 In-Reply-To: <20151210165513.GO5727@sirena.org.uk> Sender: linux-next-owner@vger.kernel.org List-ID: To: Mark Brown Cc: Vlastimil Babka , Catalin Marinas , Will Deacon , Stephen Rothwell , kernel-build-reports@lists.linaro.org, linaro-kernel@lists.linaro.org, linux-next@vger.kernel.org, linux-arm-kernel@lists.infradead.org On Thu, 10 Dec 2015 16:55:13 +0000 Mark Brown wrote: > Today's -next fails to build most arm64 configs with some rather > spectacular errors below introduced by 02598e94ed5a78 (mm, printk: > introduce new format string for flags) from Andrew's tree. These in > turn stem from the fact that we introduce an inclusion of > linux/tracepoint.h into linux/mmdebug.h which through a chain of nested > inclusions means that we end up attempting to use definitions from > headers before they have finished including. Thanks. Further complexicating the include tree is something we don't need. I'll try moving the offending declarations into mm/internal.h, see how that goes. Including ../mm/internal.h into lib/vsprintf.c is a bit grubby, but I guess it makes sense - vsprintf is poking about in mm internals, so it gets to include mm's internal.h. Vlastimil, the patch is rather bloaty - it adds 1.2k for something which few people will use. I wonder if it should be conditioned by CONFIG_DEBUG_VM. From: Andrew Morton Subject: mm-printk-introduce-new-format-string-for-flags-fix-2 move declaration of trace_print_flags arrays into mm/internal.h Cc: "Kirill A. Shutemov" Cc: Joonsoo Kim Cc: Mel Gorman Cc: Michal Hocko Cc: Minchan Kim Cc: Rasmus Villemoes Cc: Sasha Levin Cc: Vlastimil Babka Signed-off-by: Andrew Morton --- include/linux/mmdebug.h | 6 ------ lib/vsprintf.c | 3 ++- mm/debug.c | 2 ++ mm/internal.h | 7 +++++++ 4 files changed, 11 insertions(+), 7 deletions(-) diff -puN include/linux/mmdebug.h~mm-printk-introduce-new-format-string-for-flags-fix-2 include/linux/mmdebug.h --- a/include/linux/mmdebug.h~mm-printk-introduce-new-format-string-for-flags-fix-2 +++ a/include/linux/mmdebug.h @@ -2,17 +2,11 @@ #define LINUX_MM_DEBUG_H 1 #include -#include -#include struct page; struct vm_area_struct; struct mm_struct; -extern const struct trace_print_flags pageflag_names[]; -extern const struct trace_print_flags vmaflag_names[]; -extern const struct trace_print_flags gfpflag_names[]; - extern void dump_page(struct page *page, const char *reason); extern void dump_page_badflags(struct page *page, const char *reason, unsigned long badflags); diff -puN lib/vsprintf.c~mm-printk-introduce-new-format-string-for-flags-fix-2 lib/vsprintf.c --- a/lib/vsprintf.c~mm-printk-introduce-new-format-string-for-flags-fix-2 +++ a/lib/vsprintf.c @@ -31,7 +31,8 @@ #include #include #include -#include + +#include "../mm/internal.h" /* For the trace_print_flags arrays */ #include /* for PAGE_SIZE */ #include /* for dereference_function_descriptor() */ diff -puN mm/debug.c~mm-printk-introduce-new-format-string-for-flags-fix-2 mm/debug.c --- a/mm/debug.c~mm-printk-introduce-new-format-string-for-flags-fix-2 +++ a/mm/debug.c @@ -13,6 +13,8 @@ #include #include +#include "internal.h" + char *migrate_reason_names[MR_TYPES] = { "compaction", "memory_failure", diff -puN mm/internal.h~mm-printk-introduce-new-format-string-for-flags-fix-2 mm/internal.h --- a/mm/internal.h~mm-printk-introduce-new-format-string-for-flags-fix-2 +++ a/mm/internal.h @@ -11,9 +11,11 @@ #ifndef __MM_INTERNAL_H #define __MM_INTERNAL_H +#include #include #include #include +#include /* * The set of flags that only affect watermark checking and reclaim @@ -441,4 +443,9 @@ static inline void try_to_unmap_flush_di } #endif /* CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH */ + +extern const struct trace_print_flags pageflag_names[]; +extern const struct trace_print_flags vmaflag_names[]; +extern const struct trace_print_flags gfpflag_names[]; + #endif /* __MM_INTERNAL_H */ _