aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/traps.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2007-07-10 12:33:02 -0400
committerRalf Baechle <ralf@linux-mips.org>2007-07-10 12:33:02 -0400
commita36920200c5b89d56120a5e839fe4a603d51b16c (patch)
treeaefb1fc4b0792ef788024fa596954a5689f15d0a /arch/mips/kernel/traps.c
parentd223a86154f8c66f5a380b17e1c8091d56f47cf8 (diff)
[MIPS] Enable support for the userlocal hardware register
Which will cut down the cost of RDHWR $29 which is used to obtain the TLS pointer and so far being emulated in software down to a single cycle operation. Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel/traps.c')
-rw-r--r--arch/mips/kernel/traps.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index c598e890a880..9b19a84d11ef 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -1341,7 +1341,14 @@ void __init per_cpu_trap_init(void)
1341 set_c0_status(ST0_MX); 1341 set_c0_status(ST0_MX);
1342 1342
1343#ifdef CONFIG_CPU_MIPSR2 1343#ifdef CONFIG_CPU_MIPSR2
1344 write_c0_hwrena (0x0000000f); /* Allow rdhwr to all registers */ 1344 if (cpu_has_mips_r2) {
1345 unsigned int enable = 0x0000000f;
1346
1347 if (cpu_has_userlocal)
1348 enable |= (1 << 29);
1349
1350 write_c0_hwrena(enable);
1351 }
1345#endif 1352#endif
1346 1353
1347#ifdef CONFIG_MIPS_MT_SMTC 1354#ifdef CONFIG_MIPS_MT_SMTC