KMSAN does not unpoison the ainsn field of a kprobe struct correctly. Manually unpoison it to prevent false positives. Signed-off-by: Nicholas Miehlbradt <nicholas@xxxxxxxxxxxxx> --- arch/powerpc/kernel/kprobes.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/powerpc/kernel/kprobes.c b/arch/powerpc/kernel/kprobes.c index b20ee72e873a..1cbec54f2b6a 100644 --- a/arch/powerpc/kernel/kprobes.c +++ b/arch/powerpc/kernel/kprobes.c @@ -27,6 +27,7 @@ #include <asm/sections.h> #include <asm/inst.h> #include <linux/uaccess.h> +#include <linux/kmsan-checks.h> DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; DEFINE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); @@ -179,6 +180,7 @@ int arch_prepare_kprobe(struct kprobe *p) if (!ret) { patch_instruction(p->ainsn.insn, insn); + kmsan_unpoison_memory(p->ainsn.insn, sizeof(kprobe_opcode_t)); p->opcode = ppc_inst_val(insn); } -- 2.40.1