Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ccbfac29 authored by Steven Rostedt's avatar Steven Rostedt Committed by Thomas Gleixner
Browse files

ftrace: powerpc clean ups



This patch cleans up the ftrace code in PowerPC based on the comments from
Michael Ellerman.

Signed-off-by: default avatarSteven Rostedt <srostedt@redhat.com>
Cc: Michael Ellerman <michael@ellerman.id.au>
Cc: proski@gnu.org
Cc: a.p.zijlstra@chello.nl
Cc: Pekka Paalanen <pq@iki.fi>
Cc: Steven Rostedt <srostedt@redhat.com>
Cc: linuxppc-dev@ozlabs.org
Cc: Soeren Sandmann Pedersen <sandmann@redhat.com>
Cc: paulus@samba.org
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 41bc8144
Loading
Loading
Loading
Loading
+2 −9
Original line number Original line Diff line number Diff line
@@ -1129,18 +1129,11 @@ _GLOBAL(_mcount)
	stw	r5, 8(r1)
	stw	r5, 8(r1)


	LOAD_REG_ADDR(r5, ftrace_trace_function)
	LOAD_REG_ADDR(r5, ftrace_trace_function)
#if 0
	mtctr	r3
	mr	r1, r5
	bctrl
#endif
	lwz	r5,0(r5)
	lwz	r5,0(r5)
#if 1

	mtctr	r5
	mtctr	r5
	bctrl
	bctrl
#else

	bl	ftrace_stub
#endif
	nop
	nop


	lwz	r6, 8(r1)
	lwz	r6, 8(r1)
+7 −1
Original line number Original line Diff line number Diff line
@@ -51,10 +51,16 @@ notrace unsigned char *ftrace_call_replace(unsigned long ip, unsigned long addr)
{
{
	static unsigned int op;
	static unsigned int op;


	/*
	 * It would be nice to just use create_function_call, but that will
	 * update the code itself. Here we need to just return the
	 * instruction that is going to be modified, without modifying the
	 * code.
	 */
	addr = GET_ADDR(addr);
	addr = GET_ADDR(addr);


	/* Set to "bl addr" */
	/* Set to "bl addr" */
	op = 0x48000001 | (ftrace_calc_offset(ip, addr) & 0x03fffffe);
	op = 0x48000001 | (ftrace_calc_offset(ip, addr) & 0x03fffffc);


	/*
	/*
	 * No locking needed, this must be called via kstop_machine
	 * No locking needed, this must be called via kstop_machine
+5 −0
Original line number Original line Diff line number Diff line
@@ -43,6 +43,7 @@
#include <asm/div64.h>
#include <asm/div64.h>
#include <asm/signal.h>
#include <asm/signal.h>
#include <asm/dcr.h>
#include <asm/dcr.h>
#include <asm/ftrace.h>


#ifdef CONFIG_PPC32
#ifdef CONFIG_PPC32
extern void transfer_to_handler(void);
extern void transfer_to_handler(void);
@@ -68,6 +69,10 @@ EXPORT_SYMBOL(single_step_exception);
EXPORT_SYMBOL(sys_sigreturn);
EXPORT_SYMBOL(sys_sigreturn);
#endif
#endif


#ifdef CONFIG_FTRACE
EXPORT_SYMBOL(_mcount);
#endif

EXPORT_SYMBOL(strcpy);
EXPORT_SYMBOL(strcpy);
EXPORT_SYMBOL(strncpy);
EXPORT_SYMBOL(strncpy);
EXPORT_SYMBOL(strcat);
EXPORT_SYMBOL(strcat);
+0 −5
Original line number Original line Diff line number Diff line
@@ -47,11 +47,6 @@
#include <asm/kgdb.h>
#include <asm/kgdb.h>
#endif
#endif


#ifdef CONFIG_FTRACE
extern void _mcount(void);
EXPORT_SYMBOL(_mcount);
#endif

extern void bootx_init(unsigned long r4, unsigned long phys);
extern void bootx_init(unsigned long r4, unsigned long phys);


int boot_cpuid;
int boot_cpuid;
+0 −5
Original line number Original line Diff line number Diff line
@@ -85,11 +85,6 @@ struct ppc64_caches ppc64_caches = {
};
};
EXPORT_SYMBOL_GPL(ppc64_caches);
EXPORT_SYMBOL_GPL(ppc64_caches);


#ifdef CONFIG_FTRACE
extern void _mcount(void);
EXPORT_SYMBOL(_mcount);
#endif

/*
/*
 * These are used in binfmt_elf.c to put aux entries on the stack
 * These are used in binfmt_elf.c to put aux entries on the stack
 * for each elf executable being started.
 * for each elf executable being started.
Loading