s390/ftrace: enforce DYNAMIC_FTRACE if FUNCTION_TRACER is selected
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Fri, 15 Aug 2014 11:16:09 +0000 (13:16 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 9 Sep 2014 06:53:29 +0000 (08:53 +0200)
We have too many combinations for function tracing. Lets simply stick to
the most advanced option, so we don't have to care of other combinations.

This means we always select DYNAMIC_FTRACE if FUNCTION_TRACER is selected.

In the s390 Makefile also remove CONFIG_FTRACE_SYSCALLS since that
functionality got moved to architecture independent code in the meantime.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/Kconfig
arch/s390/kernel/Makefile
arch/s390/kernel/ftrace.c
arch/s390/kernel/mcount.S
arch/s390/kernel/mcount64.S

index 3f845fc..47492fc 100644 (file)
@@ -97,6 +97,7 @@ config S390
        select ARCH_WANT_IPC_PARSE_VERSION
        select BUILDTIME_EXTABLE_SORT
        select CLONE_BACKWARDS2
+       select DYNAMIC_FTRACE if FUNCTION_TRACER
        select GENERIC_CLOCKEVENTS
        select GENERIC_CPU_DEVICES if !SMP
        select GENERIC_FIND_FIRST_BIT
index a95c4ca..d44245d 100644 (file)
@@ -53,9 +53,7 @@ obj-$(CONFIG_COMPAT)          += compat_wrapper.o $(compat-obj-y)
 obj-$(CONFIG_STACKTRACE)       += stacktrace.o
 obj-$(CONFIG_KPROBES)          += kprobes.o
 obj-$(CONFIG_FUNCTION_TRACER)  += $(if $(CONFIG_64BIT),mcount64.o,mcount.o)
-obj-$(CONFIG_DYNAMIC_FTRACE)   += ftrace.o
-obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
-obj-$(CONFIG_FTRACE_SYSCALLS)  += ftrace.o
+obj-$(CONFIG_FUNCTION_TRACER)  += ftrace.o
 obj-$(CONFIG_CRASH_DUMP)       += crash_dump.o
 
 ifdef CONFIG_64BIT
index 14b6195..f908e42 100644 (file)
@@ -17,8 +17,6 @@
 #include <asm/asm-offsets.h>
 #include "entry.h"
 
-#ifdef CONFIG_DYNAMIC_FTRACE
-
 void ftrace_disable_code(void);
 void ftrace_enable_insn(void);
 
@@ -142,8 +140,6 @@ int __init ftrace_dyn_arch_init(void)
        return 0;
 }
 
-#endif /* CONFIG_DYNAMIC_FTRACE */
-
 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
 /*
  * Hook the return address and push it in the stack of return addresses
@@ -169,7 +165,6 @@ out:
        return parent;
 }
 
-#ifdef CONFIG_DYNAMIC_FTRACE
 /*
  * Patch the kernel code at ftrace_graph_caller location. The instruction
  * there is branch relative and save to prepare_ftrace_return. To disable
@@ -219,5 +214,4 @@ int ftrace_disable_ftrace_graph_caller(void)
 }
 
 #endif /* CONFIG_64BIT */
-#endif /* CONFIG_DYNAMIC_FTRACE */
 #endif /* CONFIG_FUNCTION_GRAPH_TRACER */
index 433c6db..be6dbd9 100644 (file)
@@ -15,11 +15,9 @@ ENTRY(ftrace_stub)
        br      %r14
 
 ENTRY(_mcount)
-#ifdef CONFIG_DYNAMIC_FTRACE
        br      %r14
 
 ENTRY(ftrace_caller)
-#endif
        stm     %r2,%r5,16(%r15)
        bras    %r1,1f
 0:     .long   ftrace_trace_function
index 4a65dab..8cf976f 100644 (file)
@@ -22,13 +22,11 @@ ENTRY(ftrace_stub)
 #define STACK_PTREGS_PSW  (STACK_PTREGS + __PT_PSW)
 
 ENTRY(_mcount)
-#ifdef CONFIG_DYNAMIC_FTRACE
        br      %r14
 
 ENTRY(ftrace_caller)
        .globl  ftrace_regs_caller
        .set    ftrace_regs_caller,ftrace_caller
-#endif
        lgr     %r1,%r15
        aghi    %r15,-STACK_FRAME_SIZE
        stg     %r1,__SF_BACKCHAIN(%r15)