From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp2.linux-foundation.org (smtp2.linux-foundation.org [207.189.120.14]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "smtp.linux-foundation.org", Issuer "CA Cert Signing Authority" (verified OK)) by ozlabs.org (Postfix) with ESMTP id B58F6DDED2 for ; Fri, 20 Jul 2007 06:13:59 +1000 (EST) Date: Thu, 19 Jul 2007 13:13:48 -0700 From: Andrew Morton To: Kumar Gala Subject: Re: Powerpc - Include pagemap.h in asm/powerpc/tlb.h Message-Id: <20070719131348.170443bb.akpm@linux-foundation.org> In-Reply-To: References: <20070714012033.GC31649@Krystal> <20070718223034.7388e59f.akpm@linux-foundation.org> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Cc: linuxppc-dev@ozlabs.org, Mathieu Desnoyers , linux-kernel@vger.kernel.org, Paul Mackerras List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , On Thu, 19 Jul 2007 14:55:23 -0500 Kumar Gala wrote: > > On Jul 19, 2007, at 12:30 AM, Andrew Morton wrote: > > > On Fri, 13 Jul 2007 21:20:33 -0400 Mathieu Desnoyers > > wrote: > > > >> Powerpc - Include pagemap.h in asm/powerpc/tlb.h > >> > >> Fixes this powerpc build error in 2.6.22-rc6-mm1 for powerpc 64 : > >> > >> In file included from include2/asm/tlb.h:60, > >> from /home/compudj/git/linux-2.6-lttng/arch/ > >> powerpc/mm/init_64. > >> c:56: > >> /home/compudj/git/linux-2.6-lttng/include/asm-generic/tlb.h: In > >> function 'tlb_fl > >> ush_mmu': > >> /home/compudj/git/linux-2.6-lttng/include/asm-generic/tlb.h:76: > >> error: implicit > >> declaration of function 'release_pages' > >> /home/compudj/git/linux-2.6-lttng/include/asm-generic/tlb.h: In > >> function 'tlb_re > >> move_page': > >> /home/compudj/git/linux-2.6-lttng/include/asm-generic/tlb.h:105: > >> error: implicit > >> declaration of function 'page_cache_release' > > > > You have some wordwrapping going on there. > > > >> make[2]: *** [arch/powerpc/mm/init_64.o] Error 1 > >> > >> release_pages is declared in linux/pagemap.h, but cannot be > >> included in > >> linux/swap.h because of a sparc related comment: > >> > >> /* only sparc can not include linux/pagemap.h in this file > >> * so leave page_cache_release and release_pages undeclared... */ > >> #define free_page_and_swap_cache(page) \ > >> page_cache_release(page) > >> #define free_pages_and_swap_cache(pages, nr) \ > >> release_pages((pages), (nr), 0); > > > > It's always a worry when this happens. What change made us need this > > inclusion? How come you're hitting it but I (and test.kernel.org, > > at least) > > did not? How come so few other architectures include pagemap.h from > > asm/tlb.h? Why do header files get into such a mess? > > > > > >> Signed-off-by: Mathieu Desnoyers > >> CC: linuxppc-dev@ozlabs.org > >> CC: Paul Mackerras > >> --- > >> include/asm-powerpc/tlb.h | 2 ++ > >> 1 file changed, 2 insertions(+) > >> > >> Index: linux-2.6-lttng/include/asm-powerpc/tlb.h > >> =================================================================== > >> --- linux-2.6-lttng.orig/include/asm-powerpc/tlb.h 2007-07-13 > >> 11:30:54.000000000 -0400 > >> +++ linux-2.6-lttng/include/asm-powerpc/tlb.h 2007-07-13 > >> 11:31:22.000000000 -0400 > >> @@ -23,6 +23,8 @@ > >> #include > >> #endif > >> > >> +#include > >> + > >> struct mmu_gather; > >> > > > > Oh well. I queued it up for someone else to worry over ;) > > Andrew, > > Are you sending this to linus directly or should this go via paul and > me? > I queued it up for Paul. I can send it over to Linus today if we have a reason for that. It's just that I dont understand the patch: does it fix -mm-only breakage? Does it fix something which already got fixed, or what? One might think "gee, it's trivial, just slam it in", but these nested includes are often not-trivial and something else can explode as a result.