public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: David Miller <davem@davemloft.net>
Cc: rmk+kernel@arm.linux.org.uk, adobriyan@gmail.com,
	linux-kernel@vger.kernel.org, sparclinux@vger.kernel.org
Subject: Re: hardirq.h removal broke sparc64 build...
Date: Wed, 7 Jan 2009 14:58:22 -0800	[thread overview]
Message-ID: <20090107145822.625960f2.akpm@linux-foundation.org> (raw)
In-Reply-To: <20090107.144310.79937111.davem@davemloft.net>

On Wed, 07 Jan 2009 14:43:10 -0800 (PST)
David Miller <davem@davemloft.net> wrote:

> 
> [ Andrew, read carefully, I think some part of a patch you
>   merged might have been lost while reshuffling or whatever. ]
> 
> This change:
> 
> commit ba84be2338d3a2b6020d39279335bb06fcd332e1
> Author: Russell King <rmk+kernel@arm.linux.org.uk>
> Date:   Tue Jan 6 14:41:07 2009 -0800
> 
>     remove linux/hardirq.h from asm-generic/local.h
> 
> broke the build on sparc64:

urgh, sorry.

> drivers/base/topology.c: In function ___show_physical_package_id___:
> drivers/base/topology.c:103: error: implicit declaration of function ___cpu_data___
> drivers/base/topology.c:103: error: request for member ___proc_id___ in something not a structure or union
> drivers/base/topology.c: In function ___show_core_id___:
> drivers/base/topology.c:106: error: request for member ___core_id___ in something not a structure or union
> 
> Even though there is a footnote there from Alexey saying that
> sparc64 was fixed up :-)
> 
>     [adobriyan@gmail.com: fix sparc64]

OK, that patch was misdescribed.  It in fact added the <asm/hardirq.h>
includes to arch/avr32/kernel/traps.c and arch/sh/kernel/traps_32.c.

The "sparc fix" was Sam's patch:

--- a/arch/sparc/kernel/mdesc.c~remove-linux-hardirqh-from-asm-generic-localh-sparc-fix
+++ a/arch/sparc/kernel/mdesc.c
@@ -11,6 +11,7 @@
 #include <linux/mm.h>
 #include <linux/miscdevice.h>
 
+#include <asm/cpudata.h>
 #include <asm/hypervisor.h>
 #include <asm/mdesc.h>
 #include <asm/prom.h>
--- a/arch/sparc/kernel/sysfs.c~remove-linux-hardirqh-from-asm-generic-localh-sparc-fix
+++ a/arch/sparc/kernel/sysfs.c
@@ -8,6 +8,7 @@
 #include <linux/percpu.h>
 #include <linux/init.h>
 
+#include <asm/cpudata.h>
 #include <asm/hypervisor.h>
 #include <asm/spitfire.h>


which did get included. 


> I've spent most of last night and this morning trying to figure out
> a way to fix this, it is very non-trivial.
> 
> Adding a simple asm/cpudata.h include into asm/topology_64.h for the
> SMP case does not work.
> 
> asm/cpudata.h brings in percpu.h which wants SLAB which wants to use
> GFP_* values and thus includes gfp.h
> 
> And thus because of the include loop:
> 
> 	linux/gfp.h --> linux/mmzone.h --> linux/topology.h -->
> 	asm/topology.h --> asm/cpudata.h --> linux/percpu.h -->
> 	linux/slab.h
> 
> we can't include asm/cpudata.h into asm/topology.h otherwise
> we get:
> 
> include/linux/slub_def.h: In function ___kmalloc_large___:
> include/linux/slub_def.h:209: error: implicit declaration of function _____get_free_pages___
> include/linux/slub_def.h:209: error: _____GFP_COMP___ undeclared (first use in this function)
> include/linux/slub_def.h:209: error: (Each undeclared identifier is reported only once
> include/linux/slub_def.h:209: error: for each function it appears in.)
> include/linux/slub_def.h:209: warning: cast to pointer from integer of different size
> 
> for the drivers/base/topology.o build failure case above.

yes, there were some nasty problems liek that.  In several cases we wimped
out and added the necessary includes to the .c file.  Will that (sad hack)
work here?


  reply	other threads:[~2009-01-07 23:01 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-07 22:43 hardirq.h removal broke sparc64 build David Miller
2009-01-07 22:58 ` Andrew Morton [this message]
2009-01-07 23:07   ` David Miller
2009-01-07 23:30   ` David Miller
2009-01-08  7:56 ` Sam Ravnborg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090107145822.625960f2.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=adobriyan@gmail.com \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rmk+kernel@arm.linux.org.uk \
    --cc=sparclinux@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox