From: Jiaxun Yang Date: Fri, 2 Feb 2024 12:30:27 +0000 (+0000) Subject: MIPS: Clear Cause.BD in instruction_pointer_set X-Git-Tag: v6.8-rc5~35^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9d6e21ddf20293b3880ae55b9d14de91c5891c59;p=thirdparty%2Fkernel%2Flinux.git MIPS: Clear Cause.BD in instruction_pointer_set Clear Cause.BD after we use instruction_pointer_set to override EPC. This can prevent exception_epc check against instruction code at new return address. It won't be considered as "in delay slot" after epc being overridden anyway. Signed-off-by: Jiaxun Yang Signed-off-by: Thomas Bogendoerfer --- diff --git a/arch/mips/include/asm/ptrace.h b/arch/mips/include/asm/ptrace.h index 701a233583c2c..d14d0e37ad02d 100644 --- a/arch/mips/include/asm/ptrace.h +++ b/arch/mips/include/asm/ptrace.h @@ -60,6 +60,7 @@ static inline void instruction_pointer_set(struct pt_regs *regs, unsigned long val) { regs->cp0_epc = val; + regs->cp0_cause &= ~CAUSEF_BD; } /* Query offset/name of register from its name/offset */