diff options
Diffstat (limited to 'kernel/trace/trace_selftest.c')
| -rw-r--r-- | kernel/trace/trace_selftest.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c index 47623169a815..51c819c12c29 100644 --- a/kernel/trace/trace_selftest.c +++ b/kernel/trace/trace_selftest.c | |||
| @@ -415,7 +415,8 @@ static void trace_selftest_test_recursion_func(unsigned long ip, | |||
| 415 | * The ftrace infrastructure should provide the recursion | 415 | * The ftrace infrastructure should provide the recursion |
| 416 | * protection. If not, this will crash the kernel! | 416 | * protection. If not, this will crash the kernel! |
| 417 | */ | 417 | */ |
| 418 | trace_selftest_recursion_cnt++; | 418 | if (trace_selftest_recursion_cnt++ > 10) |
| 419 | return; | ||
| 419 | DYN_FTRACE_TEST_NAME(); | 420 | DYN_FTRACE_TEST_NAME(); |
| 420 | } | 421 | } |
| 421 | 422 | ||
| @@ -452,7 +453,6 @@ trace_selftest_function_recursion(void) | |||
| 452 | char *func_name; | 453 | char *func_name; |
| 453 | int len; | 454 | int len; |
| 454 | int ret; | 455 | int ret; |
| 455 | int cnt; | ||
| 456 | 456 | ||
| 457 | /* The previous test PASSED */ | 457 | /* The previous test PASSED */ |
| 458 | pr_cont("PASSED\n"); | 458 | pr_cont("PASSED\n"); |
| @@ -510,19 +510,10 @@ trace_selftest_function_recursion(void) | |||
| 510 | 510 | ||
| 511 | unregister_ftrace_function(&test_recsafe_probe); | 511 | unregister_ftrace_function(&test_recsafe_probe); |
| 512 | 512 | ||
| 513 | /* | ||
| 514 | * If arch supports all ftrace features, and no other task | ||
| 515 | * was on the list, we should be fine. | ||
| 516 | */ | ||
| 517 | if (!ftrace_nr_registered_ops() && !FTRACE_FORCE_LIST_FUNC) | ||
| 518 | cnt = 2; /* Should have recursed */ | ||
| 519 | else | ||
| 520 | cnt = 1; | ||
| 521 | |||
| 522 | ret = -1; | 513 | ret = -1; |
| 523 | if (trace_selftest_recursion_cnt != cnt) { | 514 | if (trace_selftest_recursion_cnt != 2) { |
| 524 | pr_cont("*callback not called expected %d times (%d)* ", | 515 | pr_cont("*callback not called expected 2 times (%d)* ", |
| 525 | cnt, trace_selftest_recursion_cnt); | 516 | trace_selftest_recursion_cnt); |
| 526 | goto out; | 517 | goto out; |
| 527 | } | 518 | } |
| 528 | 519 | ||
| @@ -568,7 +559,7 @@ trace_selftest_function_regs(void) | |||
| 568 | int ret; | 559 | int ret; |
| 569 | int supported = 0; | 560 | int supported = 0; |
| 570 | 561 | ||
| 571 | #ifdef ARCH_SUPPORTS_FTRACE_SAVE_REGS | 562 | #ifdef CONFIG_DYNAMIC_FTRACE_WITH_REGS |
| 572 | supported = 1; | 563 | supported = 1; |
| 573 | #endif | 564 | #endif |
| 574 | 565 | ||
