Blackfin: kgdb_test: rework code to avoid -O0 usage
authorSonic Zhang <sonic.zhang@analog.com>
Fri, 12 Aug 2011 09:57:57 +0000 (17:57 +0800)
committerMike Frysinger <vapier@gentoo.org>
Tue, 25 Oct 2011 23:51:38 +0000 (19:51 -0400)
__kfree_rcu() in rcupdate.h bugs when parameter offset is not a constant
at compile time.  Since we build the kgdb_test module with -O0 and it
includes this header file, we hit the bug.  So drop the -O0 and mark the
one func we need for the test as noinline (so we can set a breakpoint on
it and have it be hit).

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
arch/blackfin/kernel/Makefile
arch/blackfin/kernel/kgdb_test.c

index b7bdc42..1f88edd 100644 (file)
@@ -38,6 +38,6 @@ obj-$(CONFIG_PERF_EVENTS)            += perf_event.o
 
 # the kgdb test puts code into L2 and without linker
 # relaxation, we need to force long calls to/from it
-CFLAGS_kgdb_test.o := -mlong-calls -O0
+CFLAGS_kgdb_test.o := -mlong-calls
 
 obj-$(CONFIG_DEBUG_MMRS)             += debug-mmrs.o
index 2a6e9db..4a7dcfe 100644 (file)
@@ -50,8 +50,7 @@ void kgdb_l2_test(void)
 
 #endif
 
-
-int kgdb_test(char *name, int len, int count, int z)
+noinline int kgdb_test(char *name, int len, int count, int z)
 {
        pr_alert("kgdb name(%d): %s, %d, %d\n", len, name, count, z);
        count = z;