Less code means less bugs so add a knob to skip the compat stuff. This is tested on ppc64le top of https://patchwork.ozlabs.org/cover/1153556/ Changes in v2: saner CONFIG_COMPAT ifdefs Changes in v3: - change llseek to 32bit instead of builing it unconditionally in fs - clanup the makefile conditionals - remove some ifdefs or convert to IS_DEFINED where possible Changes in v4: - cleanup is_32bit_task and current_is_64bit - more makefile cleanup Changes in v5: - more current_is_64bit cleanup - split off callchain.c 32bit and 64bit parts Changes in v6: - cleanup makefile after split - consolidate read_user_stack_32 - fix some checkpatch warnings Changes in v7: - add back __ARCH_WANT_SYS_LLSEEK to fix build with llseek - remove leftover hunk - add review tags Michal Suchanek (6): powerpc: Add back __ARCH_WANT_SYS_LLSEEK macro powerpc: move common register copy functions from signal_32.c to signal.c powerpc/perf: consolidate read_user_stack_32 powerpc/64: make buildable without CONFIG_COMPAT powerpc/64: Make COMPAT user-selectable disabled on littleendian by default. powerpc/perf: split callchain.c by bitness arch/powerpc/Kconfig | 5 +- arch/powerpc/include/asm/thread_info.h | 4 +- arch/powerpc/include/asm/unistd.h | 1 + arch/powerpc/kernel/Makefile | 7 +- arch/powerpc/kernel/entry_64.S | 2 + arch/powerpc/kernel/signal.c | 144 +++++++++- arch/powerpc/kernel/signal_32.c | 140 --------- arch/powerpc/kernel/syscall_64.c | 6 +- arch/powerpc/kernel/vdso.c | 5 +- arch/powerpc/perf/Makefile | 5 +- arch/powerpc/perf/callchain.c | 377 +------------------------ arch/powerpc/perf/callchain.h | 11 + arch/powerpc/perf/callchain_32.c | 204 +++++++++++++ arch/powerpc/perf/callchain_64.c | 185 ++++++++++++ fs/read_write.c | 3 +- 15 files changed, 566 insertions(+), 533 deletions(-) create mode 100644 arch/powerpc/perf/callchain.h create mode 100644 arch/powerpc/perf/callchain_32.c create mode 100644 arch/powerpc/perf/callchain_64.c -- 2.22.0