On Tue, 2023-02-07 at 22:28 +0800, Xi Ruoyao wrote:It bothers me, too. And I've mentioned it to Huacai offline before.
+struct handler_reloc *eentry_reloc[128] = {Self review:
+ [0] = NULL, /* merr handler */
This is actually incorrect. Currently the merr handler (except_vec_cex)
is coded as:
SYM_FUNC_START(except_vec_cex)
b cache_parity_error
SYM_FUNC_END(except_vec_cex)
Once this is copied into the per-cpu handler page, the offset (coded in
the b instruction) will be absolutely wrong. But it's already incorrect
in the current mainline, and I'm not familiar with CSR.CRMD.DA=1
configuration so I'm not sure how to fix it.