Skip to content

Commit

Permalink
MIPS: Disable usermode switching of the FR bit for MIPS R5 CPUs.
Browse files Browse the repository at this point in the history
Currently the kernel will always use the FR=0 register model for O32.  If
an O32 application did enable FR=1 mode, some data from another application
might be leaked in the extra registers becoming visible.

Iow, this patch is meant to make the kernel MIPS R5 tolerant but leaves
proper MIPS R5 support to a future patchset.

Signed-off-by: Ralf Baechle <[email protected]>
  • Loading branch information
ralfbaechle committed Sep 19, 2013
1 parent 2f9ee82 commit 8b8a763
Showing 1 changed file with 13 additions and 0 deletions.
13 changes: 13 additions & 0 deletions arch/mips/kernel/cpu-probe.c
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,17 @@ static inline unsigned int decode_config4(struct cpuinfo_mips *c)
return config4 & MIPS_CONF_M;
}

static inline unsigned int decode_config5(struct cpuinfo_mips *c)
{
unsigned int config5;

config5 = read_c0_config5();
config5 &= ~MIPS_CONF5_UFR;
write_c0_config5(config5);

return config5 & MIPS_CONF_M;
}

static void decode_configs(struct cpuinfo_mips *c)
{
int ok;
Expand All @@ -311,6 +322,8 @@ static void decode_configs(struct cpuinfo_mips *c)
ok = decode_config3(c);
if (ok)
ok = decode_config4(c);
if (ok)
ok = decode_config5(c);

mips_probe_watch_registers(c);

Expand Down

0 comments on commit 8b8a763

Please sign in to comment.