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:
Jack Steiner 2009-06-17 16:28:29 -07:00 committed by Linus Torvalds
parent d5826dd600
commit d6e2fbce0d
1 changed files with 2 additions and 3 deletions

View File

@ -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))