All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Jean Delvare <khali@linux-fr.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
	Christoph Lameter <clameter@sgi.com>,
	Roland Dreier <rolandd@cisco.com>
Subject: Re: 2.6.23-rc8 build failure: __you_cannot_kmalloc_that_much in dmi_id_init
Date: Thu, 4 Oct 2007 01:48:28 -0700	[thread overview]
Message-ID: <20071004014828.1bc971c8.akpm@linux-foundation.org> (raw)
In-Reply-To: <20071002232642.568ea660@hyperion.delvare>

On Tue, 2 Oct 2007 23:26:42 +0200 Jean Delvare <khali@linux-fr.org> wrote:

> On Mon, 1 Oct 2007 23:54:12 +0200, Jean Delvare wrote:
> > On Mon, 1 Oct 2007 22:54:47 +0200, Jean Delvare wrote:
> > > 2.6.23-rc8 and 2.6.23-rc8-git4 fail to build on one of my test
> > > machines, with:
> > > 
> > > drivers/built-in.o(.init.text+0x780e): In function `dmi_id_init':
> > > : undefined reference to `__you_cannot_kmalloc_that_much'
> > > 
> > > The code is allocating sizeof(struct device) so it really shouldn't be
> > > a problem. I have no idea what's wrong. That's on i386, very old
> > > machine (Pentium 166MMX / Intel TX chipset), with gcc 3.2.3 and
> > > binutils 2.14.90.0.6. 2.6.22.9 compiles fine on the same system (but it
> > > doesn't include dmi-id so it's not very surprising).
> > > 
> > > .config attached.
> > 
> > More information: building the same config on a much more recent system
> > works fine. This seems to point at a toolchain issue.
> 
> More information:
> * No improvement in 2.6.23-rc9.
> * Building the same config on a different system with the same
>   toolchain, fails the same. So it's not just one system acting weirdly,
>   the bug can be reproduced.
> * I tried arbitrary values for the kzalloc() in dmi-id.c, the bottom line
>   is that anything above 64 bytes triggers the bug.
> * The same kzalloc() in a different driver doesn't trigger the bug.
> 
> I'm puzzled, no idea what to try next.
> 

Yeah, the tricks we play in there do fool some versions of gcc, and you see
the result.

Roland came up with this:

--- a/include/linux/slub_def.h
+++ b/include/linux/slub_def.h
@@ -145,7 +145,7 @@ static __always_inline struct kmem_cache *kmalloc_slab(size_t size)
 	 * testing it here shouldn't be needed.  But some versions of gcc need
 	 * help.
 	 */
-	if (__builtin_constant_p(size) && index < 0) {
+	if (__builtin_constant_p(index) && index < 0) {
 		/*
 		 * Generate a link failure. Would be great if we could
 		 * do something to stop the compile here.



Does it fix things for you?

  reply	other threads:[~2007-10-04  8:49 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-01 20:54 2.6.23-rc8 build failure: __you_cannot_kmalloc_that_much in dmi_id_init Jean Delvare
2007-10-01 21:54 ` Jean Delvare
2007-10-02 21:26   ` Jean Delvare
2007-10-04  8:48     ` Andrew Morton [this message]
2007-10-04  9:28       ` Jean Delvare

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=20071004014828.1bc971c8.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=clameter@sgi.com \
    --cc=khali@linux-fr.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rolandd@cisco.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.