gru: fix automatic retry of gru instruction failures
Fix bug in automatic retry of GRU instruction failures. CBR substatus (message queue failure) was being checked incorrectly. 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>
This commit is contained in:
parent
d5826dd600
commit
d6e2fbce0d
|
@ -436,11 +436,10 @@ static int gru_retry_exception(void *cb)
|
||||||
int retry = EXCEPTION_RETRY_LIMIT;
|
int retry = EXCEPTION_RETRY_LIMIT;
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
if (gru_get_cb_message_queue_substatus(cb))
|
|
||||||
break;
|
|
||||||
if (gru_wait_idle_or_exception(gen) == CBS_IDLE)
|
if (gru_wait_idle_or_exception(gen) == CBS_IDLE)
|
||||||
return CBS_IDLE;
|
return CBS_IDLE;
|
||||||
|
if (gru_get_cb_message_queue_substatus(cb))
|
||||||
|
return CBS_EXCEPTION;
|
||||||
gru_get_cb_exception_detail(cb, &excdet);
|
gru_get_cb_exception_detail(cb, &excdet);
|
||||||
if ((excdet.ecause & ~EXCEPTION_RETRY_BITS) ||
|
if ((excdet.ecause & ~EXCEPTION_RETRY_BITS) ||
|
||||||
(excdet.cbrexecstatus & CBR_EXS_ABORT_OCC))
|
(excdet.cbrexecstatus & CBR_EXS_ABORT_OCC))
|
||||||
|
|
Loading…
Reference in New Issue