diff options
Diffstat (limited to 'drivers/misc/sgi-gru/grufault.c')
-rw-r--r-- | drivers/misc/sgi-gru/grufault.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c index a489807613f8..6d0681236db5 100644 --- a/drivers/misc/sgi-gru/grufault.c +++ b/drivers/misc/sgi-gru/grufault.c | |||
@@ -614,7 +614,7 @@ int gru_get_exception_detail(unsigned long arg) | |||
614 | } else if (gts->ts_gru) { | 614 | } else if (gts->ts_gru) { |
615 | cbrnum = thread_cbr_number(gts, ucbnum); | 615 | cbrnum = thread_cbr_number(gts, ucbnum); |
616 | cbe = get_cbe_by_index(gts->ts_gru, cbrnum); | 616 | cbe = get_cbe_by_index(gts->ts_gru, cbrnum); |
617 | prefetchw(cbe);/* Harmless on hardware, required for emulator */ | 617 | gru_flush_cache(cbe); /* CBE not coherent */ |
618 | excdet.opc = cbe->opccpy; | 618 | excdet.opc = cbe->opccpy; |
619 | excdet.exopc = cbe->exopccpy; | 619 | excdet.exopc = cbe->exopccpy; |
620 | excdet.ecause = cbe->ecause; | 620 | excdet.ecause = cbe->ecause; |
@@ -622,6 +622,7 @@ int gru_get_exception_detail(unsigned long arg) | |||
622 | excdet.exceptdet1 = cbe->idef3upd; | 622 | excdet.exceptdet1 = cbe->idef3upd; |
623 | excdet.cbrstate = cbe->cbrstate; | 623 | excdet.cbrstate = cbe->cbrstate; |
624 | excdet.cbrexecstatus = cbe->cbrexecstatus; | 624 | excdet.cbrexecstatus = cbe->cbrexecstatus; |
625 | gru_flush_cache(cbe); | ||
625 | ret = 0; | 626 | ret = 0; |
626 | } else { | 627 | } else { |
627 | ret = -EAGAIN; | 628 | ret = -EAGAIN; |