aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/misc/sgi-gru/grufault.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/misc/sgi-gru/grufault.c')
-rw-r--r--drivers/misc/sgi-gru/grufault.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c
index 7466234450f3..d3cacd696b38 100644
--- a/drivers/misc/sgi-gru/grufault.c
+++ b/drivers/misc/sgi-gru/grufault.c
@@ -333,6 +333,7 @@ static int gru_try_dropin(struct gru_thread_state *gts,
333 */ 333 */
334 if (tfh->status != TFHSTATUS_EXCEPTION) { 334 if (tfh->status != TFHSTATUS_EXCEPTION) {
335 gru_flush_cache(tfh); 335 gru_flush_cache(tfh);
336 sync_core();
336 if (tfh->status != TFHSTATUS_EXCEPTION) 337 if (tfh->status != TFHSTATUS_EXCEPTION)
337 goto failnoexception; 338 goto failnoexception;
338 STAT(tfh_stale_on_fault); 339 STAT(tfh_stale_on_fault);
@@ -599,6 +600,7 @@ int gru_get_exception_detail(unsigned long arg)
599 cbrnum = thread_cbr_number(gts, ucbnum); 600 cbrnum = thread_cbr_number(gts, ucbnum);
600 cbe = get_cbe_by_index(gts->ts_gru, cbrnum); 601 cbe = get_cbe_by_index(gts->ts_gru, cbrnum);
601 gru_flush_cache(cbe); /* CBE not coherent */ 602 gru_flush_cache(cbe); /* CBE not coherent */
603 sync_core(); /* make sure we are have current data */
602 excdet.opc = cbe->opccpy; 604 excdet.opc = cbe->opccpy;
603 excdet.exopc = cbe->exopccpy; 605 excdet.exopc = cbe->exopccpy;
604 excdet.ecause = cbe->ecause; 606 excdet.ecause = cbe->ecause;