diff options
author | Jack Steiner <steiner@sgi.com> | 2009-06-17 19:28:28 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-06-18 16:04:02 -0400 |
commit | 1a2c09e3b41e334b6651d53b39cfe8ceefbc45f8 (patch) | |
tree | f005fcb5c5251256767b15f4a23ee220e6de5c88 /drivers/misc/sgi-gru/grufile.c | |
parent | 270952a907220c0331fdaecbb55df892921c5e2d (diff) |
gru: fix cache coherency issues with instruction retry
Fix two problems related to GRU instruction failures. Cache coherency is
not maintained for CBEs except when loading or unloading contexts. When
reading a CBE to extract error information, the CBE must first be flushed
from the cache.
The function that reads kerrnel CBEs was reading the wrong CBE.
Signed-off-by: Jack Steiner <steiner@sgi.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/misc/sgi-gru/grufile.c')
-rw-r--r-- | drivers/misc/sgi-gru/grufile.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/misc/sgi-gru/grufile.c b/drivers/misc/sgi-gru/grufile.c index 796ac704795e..bfc88d1b2a5b 100644 --- a/drivers/misc/sgi-gru/grufile.c +++ b/drivers/misc/sgi-gru/grufile.c | |||
@@ -46,6 +46,7 @@ | |||
46 | 46 | ||
47 | struct gru_blade_state *gru_base[GRU_MAX_BLADES] __read_mostly; | 47 | struct gru_blade_state *gru_base[GRU_MAX_BLADES] __read_mostly; |
48 | unsigned long gru_start_paddr __read_mostly; | 48 | unsigned long gru_start_paddr __read_mostly; |
49 | void *gru_start_vaddr __read_mostly; | ||
49 | unsigned long gru_end_paddr __read_mostly; | 50 | unsigned long gru_end_paddr __read_mostly; |
50 | unsigned int gru_max_gids __read_mostly; | 51 | unsigned int gru_max_gids __read_mostly; |
51 | struct gru_stats_s gru_stats; | 52 | struct gru_stats_s gru_stats; |
@@ -376,7 +377,6 @@ static int __init gru_init(void) | |||
376 | { | 377 | { |
377 | int ret, irq, chip; | 378 | int ret, irq, chip; |
378 | char id[10]; | 379 | char id[10]; |
379 | void *gru_start_vaddr; | ||
380 | 380 | ||
381 | if (!is_uv_system()) | 381 | if (!is_uv_system()) |
382 | return 0; | 382 | return 0; |