Skip to content

Commit

Permalink
ARM: kprobes: Prevent known test failures stopping other tests running
Browse files Browse the repository at this point in the history
Due to a long-standing issue with Thumb symbol lookup [1] the jprobes
tests fail when built into a kernel compiled as Thumb mode. (They work
fine for ARM mode kernels or for Thumb when built as a loadable module.)

Rather than have this problem terminate testing prematurely lets instead
emit an error message and carry on with the main kprobes tests, delaying
the final failure report until the end.

[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2011-August/063026.html

Signed-off-by: Jon Medhurst <tixy@linaro.org>
  • Loading branch information
Jon Medhurst committed Jul 2, 2014
1 parent a497c3b commit 48f7bc8
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions arch/arm/kernel/kprobes-test.c
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,7 @@ static int pre_handler_called;
static int post_handler_called;
static int jprobe_func_called;
static int kretprobe_handler_called;
static int tests_failed;

#define FUNC_ARG1 0x12345678
#define FUNC_ARG2 0xabcdef
Expand Down Expand Up @@ -461,6 +462,13 @@ static int run_api_tests(long (*func)(long, long))

pr_info(" jprobe\n");
ret = test_jprobe(func);
#if defined(CONFIG_THUMB2_KERNEL) && !defined(MODULE)
if (ret == -EINVAL) {
pr_err("FAIL: Known longtime bug with jprobe on Thumb kernels\n");
tests_failed = ret;
ret = 0;
}
#endif
if (ret < 0)
return ret;

Expand Down Expand Up @@ -1671,6 +1679,8 @@ static int __init run_all_tests(void)
#endif

out:
if (ret == 0)
ret = tests_failed;
if (ret == 0)
pr_info("Finished kprobe tests OK\n");
else
Expand Down

0 comments on commit 48f7bc8

Please sign in to comment.