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 | ||