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

Commit 25aac9dc authored by Shaohua Li's avatar Shaohua Li Committed by Ingo Molnar
Browse files

ftrace, ia64: explictly ignore a file in recordmcount.pl



In IA64, a function pointer isn't a 'unsigned long' but a
'struct {unsigned long ip, unsigned long gp}'. MCOUNT_ADDR is determined
at link time not compile time, so explictly ignore kernel/trace/ftrace.o
in recordmcount.pl.

Signed-off-by: default avatarShaohua Li <shaohua.li@intel.com>
Signed-off-by: default avatarSteven Rostedt <srostedt@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 18c167fd
Loading
Loading
Loading
Loading
+1 −9
Original line number Diff line number Diff line
@@ -263,14 +263,6 @@ static void ftrace_update_pid_func(void)
# error Dynamic ftrace depends on MCOUNT_RECORD
#endif

/*
 * Since MCOUNT_ADDR may point to mcount itself, we do not want
 * to get it confused by reading a reference in the code as we
 * are parsing on objcopy output of text. Use a variable for
 * it instead.
 */
static unsigned long mcount_addr = MCOUNT_ADDR;

enum {
	FTRACE_ENABLE_CALLS		= (1 << 0),
	FTRACE_DISABLE_CALLS		= (1 << 1),
@@ -575,7 +567,7 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec)

	ip = rec->ip;

	ret = ftrace_make_nop(mod, rec, mcount_addr);
	ret = ftrace_make_nop(mod, rec, MCOUNT_ADDR);
	if (ret) {
		ftrace_bug(ret, ip);
		rec->flags |= FTRACE_FL_FAILED;
+5 −0
Original line number Diff line number Diff line
@@ -109,6 +109,11 @@ if ($#ARGV < 7) {
my ($arch, $bits, $objdump, $objcopy, $cc,
    $ld, $nm, $rm, $mv, $is_module, $inputfile) = @ARGV;

# This file refers to mcount and shouldn't be ftraced, so lets' ignore it
if ($inputfile eq "kernel/trace/ftrace.o") {
    exit(0);
}

# Acceptable sections to record.
my %text_sections = (
     ".text" => 1,