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

Commit 5ab8b110 authored by Daniel Kurtz's avatar Daniel Kurtz Committed by Ruchi Kandoi
Browse files

arm64: fix ftrace due to bad cherry-picks from mainline v3.19



Three patches were cherry-picked incorrectly from mainline to android-3.18:

c852f32 arm64: Emulate CP15 Barrier instructions
bd35a4a arm64: Port SWP/SWPB emulation support from arm
9b79f52 arm64: Add support for hooks to handle undefined instructions

In all cases, the added hunks should have been above
"#endif /*__ASSEMBLY */" in arch/arm64/include/asm/insn.h.

The bad merge breaks ftrace compilation on arm64 (e.g. with the following
lines added to arch/arm64/configs/defconfig):
 CONFIG_FTRACE=y
 CONFIG_FUNCTION_TRACER=y

Here is the breakage:
  AS      arch/arm64/kernel/entry-ftrace.o
./arch/arm64/include/asm/insn.h: Assembler messages:
./arch/arm64/include/asm/insn.h:359: Error: unknown mnemonic `bool' -- `bool aarch32_insn_is_wide(u32 insn)'
./arch/arm64/include/asm/insn.h:365: Error: unknown mnemonic `u32' -- `u32 aarch32_insn_extract_reg_num(u32 insn,int offset)'
./arch/arm64/include/asm/insn.h:366: Error: unknown mnemonic `u32' -- `u32 aarch32_insn_mcr_extract_opc2(u32 insn)'
./arch/arm64/include/asm/insn.h:367: Error: unknown mnemonic `u32' -- `u32 aarch32_insn_mcr_extract_crm(u32 insn)'
scripts/Makefile.build:293: recipe for target 'arch/arm64/kernel/entry-ftrace.o' failed

Signed-off-by: default avatarDaniel Kurtz <djkurtz@google.com>
Change-Id: I87e83afcad8665e52f9e6ed7dac856f45670e3e6
parent 6bdf3678
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -354,7 +354,6 @@ bool aarch64_insn_hotpatch_safe(u32 old_insn, u32 new_insn);
int aarch64_insn_patch_text_nosync(void *addr, u32 insn);
int aarch64_insn_patch_text_sync(void *addrs[], u32 insns[], int cnt);
int aarch64_insn_patch_text(void *addrs[], u32 insns[], int cnt);
#endif /* __ASSEMBLY__ */

bool aarch32_insn_is_wide(u32 insn);

@@ -365,5 +364,6 @@ bool aarch32_insn_is_wide(u32 insn);
u32 aarch32_insn_extract_reg_num(u32 insn, int offset);
u32 aarch32_insn_mcr_extract_opc2(u32 insn);
u32 aarch32_insn_mcr_extract_crm(u32 insn);
#endif /* __ASSEMBLY__ */

#endif	/* __ASM_INSN_H */