diff options
Diffstat (limited to 'arch/mips/kernel/smtc.c')
| -rw-r--r-- | arch/mips/kernel/smtc.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c index 8a0626cbb108..c16bb6d6c25c 100644 --- a/arch/mips/kernel/smtc.c +++ b/arch/mips/kernel/smtc.c | |||
| @@ -465,11 +465,8 @@ void smtc_prepare_cpus(int cpus) | |||
| 465 | smtc_configure_tlb(); | 465 | smtc_configure_tlb(); |
| 466 | 466 | ||
| 467 | for (tc = 0, vpe = 0 ; (vpe < nvpe) && (tc < ntc) ; vpe++) { | 467 | for (tc = 0, vpe = 0 ; (vpe < nvpe) && (tc < ntc) ; vpe++) { |
| 468 | /* | 468 | if (tcpervpe[vpe] == 0) |
| 469 | * Set the MVP bits. | 469 | continue; |
| 470 | */ | ||
| 471 | settc(tc); | ||
| 472 | write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() | VPECONF0_MVP); | ||
| 473 | if (vpe != 0) | 470 | if (vpe != 0) |
| 474 | printk(", "); | 471 | printk(", "); |
| 475 | printk("VPE %d: TC", vpe); | 472 | printk("VPE %d: TC", vpe); |
| @@ -488,6 +485,12 @@ void smtc_prepare_cpus(int cpus) | |||
| 488 | } | 485 | } |
| 489 | if (vpe != 0) { | 486 | if (vpe != 0) { |
| 490 | /* | 487 | /* |
| 488 | * Allow this VPE to control others. | ||
| 489 | */ | ||
| 490 | write_vpe_c0_vpeconf0(read_vpe_c0_vpeconf0() | | ||
| 491 | VPECONF0_MVP); | ||
| 492 | |||
| 493 | /* | ||
| 491 | * Clear any stale software interrupts from VPE's Cause | 494 | * Clear any stale software interrupts from VPE's Cause |
| 492 | */ | 495 | */ |
| 493 | write_vpe_c0_cause(0); | 496 | write_vpe_c0_cause(0); |
