diff options
author | David S. Miller <davem@davemloft.net> | 2006-03-22 03:49:59 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-03-22 04:15:14 -0500 |
commit | dcc1e8dd88d4bc55e32a26dad7633d20ffe606d2 (patch) | |
tree | a47592213d94f918867d3dd81bb91dac3e727dea /arch/sparc64/kernel/traps.c | |
parent | 14778d9072e53d2171f66ffd9657daff41acfaed (diff) |
[SPARC64]: Add a secondary TSB for hugepage mappings.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/kernel/traps.c')
-rw-r--r-- | arch/sparc64/kernel/traps.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c index 7f7dba0ca96a..df612e4f75f9 100644 --- a/arch/sparc64/kernel/traps.c +++ b/arch/sparc64/kernel/traps.c | |||
@@ -2482,6 +2482,7 @@ void init_cur_cpu_trap(struct thread_info *t) | |||
2482 | 2482 | ||
2483 | extern void thread_info_offsets_are_bolixed_dave(void); | 2483 | extern void thread_info_offsets_are_bolixed_dave(void); |
2484 | extern void trap_per_cpu_offsets_are_bolixed_dave(void); | 2484 | extern void trap_per_cpu_offsets_are_bolixed_dave(void); |
2485 | extern void tsb_config_offsets_are_bolixed_dave(void); | ||
2485 | 2486 | ||
2486 | /* Only invoked on boot processor. */ | 2487 | /* Only invoked on boot processor. */ |
2487 | void __init trap_init(void) | 2488 | void __init trap_init(void) |
@@ -2535,9 +2536,27 @@ void __init trap_init(void) | |||
2535 | (TRAP_PER_CPU_CPU_MONDO_BLOCK_PA != | 2536 | (TRAP_PER_CPU_CPU_MONDO_BLOCK_PA != |
2536 | offsetof(struct trap_per_cpu, cpu_mondo_block_pa)) || | 2537 | offsetof(struct trap_per_cpu, cpu_mondo_block_pa)) || |
2537 | (TRAP_PER_CPU_CPU_LIST_PA != | 2538 | (TRAP_PER_CPU_CPU_LIST_PA != |
2538 | offsetof(struct trap_per_cpu, cpu_list_pa))) | 2539 | offsetof(struct trap_per_cpu, cpu_list_pa)) || |
2540 | (TRAP_PER_CPU_TSB_HUGE != | ||
2541 | offsetof(struct trap_per_cpu, tsb_huge)) || | ||
2542 | (TRAP_PER_CPU_TSB_HUGE_TEMP != | ||
2543 | offsetof(struct trap_per_cpu, tsb_huge_temp))) | ||
2539 | trap_per_cpu_offsets_are_bolixed_dave(); | 2544 | trap_per_cpu_offsets_are_bolixed_dave(); |
2540 | 2545 | ||
2546 | if ((TSB_CONFIG_TSB != | ||
2547 | offsetof(struct tsb_config, tsb)) || | ||
2548 | (TSB_CONFIG_RSS_LIMIT != | ||
2549 | offsetof(struct tsb_config, tsb_rss_limit)) || | ||
2550 | (TSB_CONFIG_NENTRIES != | ||
2551 | offsetof(struct tsb_config, tsb_nentries)) || | ||
2552 | (TSB_CONFIG_REG_VAL != | ||
2553 | offsetof(struct tsb_config, tsb_reg_val)) || | ||
2554 | (TSB_CONFIG_MAP_VADDR != | ||
2555 | offsetof(struct tsb_config, tsb_map_vaddr)) || | ||
2556 | (TSB_CONFIG_MAP_PTE != | ||
2557 | offsetof(struct tsb_config, tsb_map_pte))) | ||
2558 | tsb_config_offsets_are_bolixed_dave(); | ||
2559 | |||
2541 | /* Attach to the address space of init_task. On SMP we | 2560 | /* Attach to the address space of init_task. On SMP we |
2542 | * do this in smp.c:smp_callin for other cpus. | 2561 | * do this in smp.c:smp_callin for other cpus. |
2543 | */ | 2562 | */ |