misc: sgi-gru: fill execution status in exception details

gru_retry_exception() tests cbrexecstatus after asking
gru_get_cb_exception_detail() to fill the detail structure.  The helper
leaves that field uninitialized, so retry decisions depend on stale
stack data.

Populate the address, CBR state, and execution status alongside the
other exception fields, matching the user exception-detail path.

Signed-off-by: Yousef Alhouseen <alhouseenyousef@gmail.com>
Link: https://patch.msgid.link/20260630104941.53862-1-alhouseenyousef@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Yousef Alhouseen 2026-06-30 12:49:41 +02:00 committed by Greg Kroah-Hartman
parent d401772a9e
commit a361bd5bca

View File

@ -411,11 +411,14 @@ int gru_get_cb_exception_detail(void *cb,
cbe = get_cbe(GRUBASE(cb), cbrnum);
gru_flush_cache(cbe); /* CBE not coherent */
sync_core();
excdet->cb = (unsigned long)cb;
excdet->opc = cbe->opccpy;
excdet->exopc = cbe->exopccpy;
excdet->ecause = cbe->ecause;
excdet->exceptdet0 = cbe->idef1upd;
excdet->exceptdet1 = cbe->idef3upd;
excdet->cbrstate = cbe->cbrstate;
excdet->cbrexecstatus = cbe->cbrexecstatus;
gru_flush_cache(cbe);
return 0;
}
@ -1154,4 +1157,3 @@ void gru_kservices_exit(void)
if (gru_free_kernel_contexts())
BUG();
}