diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 9c98475c7dc6..647a1990163a 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c @@ -1967,6 +1967,17 @@ void __init *set_except_vector(int n, void *addr) uasm_i_jr(&buf, k0); uasm_i_nop(&buf); } +#ifdef CONFIG_CPU_R5900 + /* + * Data that could be interpreted as cache instructions + * is not allowed after the jump. + */ + uasm_i_nop(&buf); + uasm_i_nop(&buf); + uasm_i_nop(&buf); + uasm_i_nop(&buf); + uasm_i_nop(&buf); +#endif local_flush_icache_range(ebase + 0x200, (unsigned long)buf); } return (void *)old_handler;
Signed-off-by: Fredrik Noring <noring@nocrew.org> --- The Linux 2.6 port to the PlayStation 2 has this remark. I don't know where it comes from. --- arch/mips/kernel/traps.c | 11 +++++++++++ 1 file changed, 11 insertions(+)