aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2007-07-19 04:49:09 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-19 13:04:50 -0400
commitea02e3dde3509ffa7fda7f8de9c8a366e03f7bbd (patch)
tree0c48aa948de8549a2b183c2ed3e5b338fa9730b7
parent3abf7afd406866a84276d3ed04f4edf6070c9cb5 (diff)
FRV: work around a possible compiler bug
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@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/frv/Makefile2
-rw-r--r--mm/slab.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/arch/frv/Makefile b/arch/frv/Makefile
index 038e3a8457e0..9bf7345c5cc9 100644
--- a/arch/frv/Makefile
+++ b/arch/frv/Makefile
@@ -88,7 +88,7 @@ ASFLAGS += -mno-fdpic
88# make sure the .S files get compiled with debug info 88# make sure the .S files get compiled with debug info
89# and disable optimisations that are unhelpful whilst debugging 89# and disable optimisations that are unhelpful whilst debugging
90ifdef CONFIG_DEBUG_INFO 90ifdef CONFIG_DEBUG_INFO
91CFLAGS += -O1 91#CFLAGS += -O1
92AFLAGS += -Wa,--gdwarf2 92AFLAGS += -Wa,--gdwarf2
93ASFLAGS += -Wa,--gdwarf2 93ASFLAGS += -Wa,--gdwarf2
94endif 94endif
diff --git a/mm/slab.c b/mm/slab.c
index 96d30ee256ef..88bc6336ce3d 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -1163,7 +1163,7 @@ static int __cpuinit cpuup_callback(struct notifier_block *nfb,
1163 struct kmem_cache *cachep; 1163 struct kmem_cache *cachep;
1164 struct kmem_list3 *l3 = NULL; 1164 struct kmem_list3 *l3 = NULL;
1165 int node = cpu_to_node(cpu); 1165 int node = cpu_to_node(cpu);
1166 int memsize = sizeof(struct kmem_list3); 1166 const int memsize = sizeof(struct kmem_list3);
1167 1167
1168 switch (action) { 1168 switch (action) {
1169 case CPU_LOCK_ACQUIRE: 1169 case CPU_LOCK_ACQUIRE: