mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 04:34:03 +02:00
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:
parent
d401772a9e
commit
a361bd5bca
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user