diff options
author | Sonic Zhang <sonic.zhang@analog.com> | 2011-08-12 05:57:57 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-10-25 19:51:38 -0400 |
commit | a9930fd234b64ac0fcdb3e6a626d9ba44fc250fb (patch) | |
tree | 26a4bba9c894674f9ff8ebdb8a5037bedcb35953 /arch/blackfin | |
parent | c91e09b6838f514a9a162a715a75241214258270 (diff) |
Blackfin: kgdb_test: rework code to avoid -O0 usage
__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>
Diffstat (limited to 'arch/blackfin')
-rw-r--r-- | arch/blackfin/kernel/Makefile | 2 | ||||
-rw-r--r-- | arch/blackfin/kernel/kgdb_test.c | 3 |
2 files changed, 2 insertions, 3 deletions
diff --git a/arch/blackfin/kernel/Makefile b/arch/blackfin/kernel/Makefile index b7bdc42fe1a3..1f88edd4572a 100644 --- a/arch/blackfin/kernel/Makefile +++ b/arch/blackfin/kernel/Makefile | |||
@@ -38,6 +38,6 @@ obj-$(CONFIG_PERF_EVENTS) += perf_event.o | |||
38 | 38 | ||
39 | # the kgdb test puts code into L2 and without linker | 39 | # the kgdb test puts code into L2 and without linker |
40 | # relaxation, we need to force long calls to/from it | 40 | # relaxation, we need to force long calls to/from it |
41 | CFLAGS_kgdb_test.o := -mlong-calls -O0 | 41 | CFLAGS_kgdb_test.o := -mlong-calls |
42 | 42 | ||
43 | obj-$(CONFIG_DEBUG_MMRS) += debug-mmrs.o | 43 | obj-$(CONFIG_DEBUG_MMRS) += debug-mmrs.o |
diff --git a/arch/blackfin/kernel/kgdb_test.c b/arch/blackfin/kernel/kgdb_test.c index 2a6e9dbb62a5..4a7dcfea98af 100644 --- a/arch/blackfin/kernel/kgdb_test.c +++ b/arch/blackfin/kernel/kgdb_test.c | |||
@@ -50,8 +50,7 @@ void kgdb_l2_test(void) | |||
50 | 50 | ||
51 | #endif | 51 | #endif |
52 | 52 | ||
53 | 53 | noinline int kgdb_test(char *name, int len, int count, int z) | |
54 | int kgdb_test(char *name, int len, int count, int z) | ||
55 | { | 54 | { |
56 | pr_alert("kgdb name(%d): %s, %d, %d\n", len, name, count, z); | 55 | pr_alert("kgdb name(%d): %s, %d, %d\n", len, name, count, z); |
57 | count = z; | 56 | count = z; |