[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20070718130233.12173.76080.stgit@warthog.cambridge.redhat.com>
Date: Wed, 18 Jul 2007 14:02:33 +0100
From: David Howells <dhowells@...hat.com>
To: torvalds@...l.org, akpm@...l.org
Cc: linux-kernel@...r.kernel.org, dhowells@...hat.com
Subject: [PATCH] FRV: Work around a possible compiler bug
From: David Howells <dhowells@...hat.com>
Work around a possible bug in the FRV compiler.
What appears to be happening is that gcc resolves the __builtin_constant_p()
in kmalloc() to true, but then fails to reduce the therefore constant
conditions in the if-statements it guards to constant results.
When compiling with -O2 or -Os, one single spurious error crops up in
cpuup_callback() in mm/slab.c. This can be avoided by making the memsize
variable const.
Signed-off-by: David Howells <dhowells@...hat.com>
---
arch/frv/Makefile | 2 +-
mm/slab.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/frv/Makefile b/arch/frv/Makefile
index 038e3a8..9bf7345 100644
--- a/arch/frv/Makefile
+++ b/arch/frv/Makefile
@@ -88,7 +88,7 @@ ASFLAGS += -mno-fdpic
# make sure the .S files get compiled with debug info
# and disable optimisations that are unhelpful whilst debugging
ifdef CONFIG_DEBUG_INFO
-CFLAGS += -O1
+#CFLAGS += -O1
AFLAGS += -Wa,--gdwarf2
ASFLAGS += -Wa,--gdwarf2
endif
diff --git a/mm/slab.c b/mm/slab.c
index 96d30ee..88bc633 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -1163,7 +1163,7 @@ static int __cpuinit cpuup_callback(struct notifier_block *nfb,
struct kmem_cache *cachep;
struct kmem_list3 *l3 = NULL;
int node = cpu_to_node(cpu);
- int memsize = sizeof(struct kmem_list3);
+ const int memsize = sizeof(struct kmem_list3);
switch (action) {
case CPU_LOCK_ACQUIRE:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists