提交 67acd8d5 编写于 作者: P Paul Burton 提交者: Ralf Baechle

MIPS: clear execution hazard after changing FTLB enable

On current P-series cores from Imagination the FTLB can be enabled or
disabled via a bit in the Config6 register, and an execution hazard is
created by changing the value of bit. The ftlb_disable function already
cleared that hazard but that does no good for other callers. Clear the
hazard in the set_ftlb_enable function that creates it, and only for the
cores where it applies.

This has the effect of reverting c982c6d6 ("MIPS: cpu-probe: Remove
cp0 hazard barrier when enabling the FTLB") which was incorrect.
Signed-off-by: NPaul Burton <paul.burton@imgtec.com>
Fixes: c982c6d6 ("MIPS: cpu-probe: Remove cp0 hazard barrier when enabling the FTLB")
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/14023/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
上级 ebd0e0f5
...@@ -376,8 +376,6 @@ static int __init ftlb_disable(char *s) ...@@ -376,8 +376,6 @@ static int __init ftlb_disable(char *s)
return 1; return 1;
} }
back_to_back_c0_hazard();
config4 = read_c0_config4(); config4 = read_c0_config4();
/* Check that FTLB has been disabled */ /* Check that FTLB has been disabled */
...@@ -560,6 +558,7 @@ static int set_ftlb_enable(struct cpuinfo_mips *c, enum ftlb_flags flags) ...@@ -560,6 +558,7 @@ static int set_ftlb_enable(struct cpuinfo_mips *c, enum ftlb_flags flags)
} }
write_c0_config6(config); write_c0_config6(config);
back_to_back_c0_hazard();
break; break;
case CPU_I6400: case CPU_I6400:
/* There's no way to disable the FTLB */ /* There's no way to disable the FTLB */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册