diff --git a/arch/arm64/include/asm/patching.h b/arch/arm64/include/asm/patching.h index 6bf5adc56295..82b1e0c66809 100644 --- a/arch/arm64/include/asm/patching.h +++ b/arch/arm64/include/asm/patching.h @@ -6,6 +6,7 @@ int aarch64_insn_read(void *addr, u32 *insnp); int aarch64_insn_write(void *addr, u32 insn); +int aarch64_addr_write(void *addr, u64 dst); int aarch64_insn_patch_text_nosync(void *addr, u32 insn); int aarch64_insn_patch_text(void *addrs[], u32 insns[], int cnt); diff --git a/arch/arm64/kernel/patching.c b/arch/arm64/kernel/patching.c index b949db008562..b336073fe6b1 100644 --- a/arch/arm64/kernel/patching.c +++ b/arch/arm64/kernel/patching.c @@ -90,6 +90,11 @@ int __kprobes aarch64_insn_write(void *addr, u32 insn) return __aarch64_text_write(addr, &__insn, AARCH64_INSN_SIZE); } +int __kprobes aarch64_addr_write(void *addr, u64 dst) +{ + return __aarch64_text_write(addr, &dst, sizeof(dst)); +} + int __kprobes aarch64_insn_patch_text_nosync(void *addr, u32 insn) { u32 *tp = addr;