aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/sgi-gru/grumain.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/misc/sgi-gru/grumain.c')
-rw-r--r--drivers/misc/sgi-gru/grumain.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/misc/sgi-gru/grumain.c b/drivers/misc/sgi-gru/grumain.c
index a383271d3912..120c70c5a28a 100644
--- a/drivers/misc/sgi-gru/grumain.c
+++ b/drivers/misc/sgi-gru/grumain.c
@@ -49,12 +49,16 @@ struct device *grudev = &gru_device;
49/* 49/*
50 * Select a gru fault map to be used by the current cpu. Note that 50 * Select a gru fault map to be used by the current cpu. Note that
51 * multiple cpus may be using the same map. 51 * multiple cpus may be using the same map.
52 * ZZZ should "shift" be used?? Depends on HT cpu numbering
53 * ZZZ should be inline but did not work on emulator 52 * ZZZ should be inline but did not work on emulator
54 */ 53 */
55int gru_cpu_fault_map_id(void) 54int gru_cpu_fault_map_id(void)
56{ 55{
57 return uv_blade_processor_id() % GRU_NUM_TFM; 56 int cpu = smp_processor_id();
57 int id, core;
58
59 core = uv_cpu_core_number(cpu);
60 id = core + UV_MAX_INT_CORES * uv_cpu_socket_number(cpu);
61 return id;
58} 62}
59 63
60/*--------- ASID Management ------------------------------------------- 64/*--------- ASID Management -------------------------------------------
@@ -605,6 +609,7 @@ void gru_load_context(struct gru_thread_state *gts)
605 cch->unmap_enable = 1; 609 cch->unmap_enable = 1;
606 cch->tfm_done_bit_enable = 1; 610 cch->tfm_done_bit_enable = 1;
607 cch->cb_int_enable = 1; 611 cch->cb_int_enable = 1;
612 cch->tlb_int_select = 0; /* For now, ints go to cpu 0 */
608 } else { 613 } else {
609 cch->unmap_enable = 0; 614 cch->unmap_enable = 0;
610 cch->tfm_done_bit_enable = 0; 615 cch->tfm_done_bit_enable = 0;