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

Commit 60ea7bb0 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull parisc ftrace fixes from Helge Deller:
 "This is (most likely) the last pull request for v4.6 for the parisc
  architecture.

  It fixes the FTRACE feature for parisc, which is horribly broken since
   quite some time and doesn't even compile.  This patch just fixes the
  bare minimum (it actually removes more lines than it adds), so that
  the function tracer works again on 32- and 64bit kernels.

  I've queued up additional patches on top of this patch which e.g. add
  the syscall tracer, but those have to wait for the merge window for
  v4.7."

* 'parisc-4.6-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:
  parisc: Fix ftrace function tracer
parents 806fdcce 366dd4ea
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -4,8 +4,8 @@ config PARISC
	select ARCH_MIGHT_HAVE_PC_PARPORT
	select HAVE_IDE
	select HAVE_OPROFILE
	select HAVE_FUNCTION_TRACER if 64BIT
	select HAVE_FUNCTION_GRAPH_TRACER if 64BIT
	select HAVE_FUNCTION_TRACER
	select HAVE_FUNCTION_GRAPH_TRACER
	select ARCH_WANT_FRAME_POINTERS
	select RTC_CLASS
	select RTC_DRV_GENERIC
+4 −0
Original line number Diff line number Diff line
@@ -2,9 +2,13 @@ menu "Kernel hacking"

source "lib/Kconfig.debug"

config TRACE_IRQFLAGS_SUPPORT
	def_bool y

config DEBUG_RODATA
       bool "Write protect kernel read-only data structures"
       depends on DEBUG_KERNEL
       default y
       help
         Mark the kernel read-only data as write-protected in the pagetables,
         in order to catch accidental (and incorrect) writes to such const
+1 −3
Original line number Diff line number Diff line
@@ -62,9 +62,7 @@ cflags-y += -mdisable-fpregs

# Without this, "ld -r" results in .text sections that are too big
# (> 0x40000) for branches to reach stubs.
ifndef CONFIG_FUNCTION_TRACER
cflags-y	+= -ffunction-sections
endif

# Use long jumps instead of long branches (needed if your linker fails to
# link a too big vmlinux executable). Not enabled for building modules.
+1 −17
Original line number Diff line number Diff line
@@ -4,23 +4,7 @@
#ifndef __ASSEMBLY__
extern void mcount(void);

/*
 * Stack of return addresses for functions of a thread.
 * Used in struct thread_info
 */
struct ftrace_ret_stack {
	unsigned long ret;
	unsigned long func;
	unsigned long long calltime;
};

/*
 * Primary handler of a function return.
 * It relays on ftrace_return_to_handler.
 * Defined in entry.S
 */
extern void return_to_handler(void);

#define MCOUNT_INSN_SIZE 4

extern unsigned long return_address(unsigned int);

+0 −4
Original line number Diff line number Diff line
@@ -15,11 +15,7 @@ ifdef CONFIG_FUNCTION_TRACER
# Do not profile debug and lowlevel utilities
CFLAGS_REMOVE_ftrace.o = -pg
CFLAGS_REMOVE_cache.o = -pg
CFLAGS_REMOVE_irq.o = -pg
CFLAGS_REMOVE_pacache.o = -pg
CFLAGS_REMOVE_perf.o = -pg
CFLAGS_REMOVE_traps.o = -pg
CFLAGS_REMOVE_unaligned.o = -pg
CFLAGS_REMOVE_unwind.o = -pg
endif

Loading