[PATCH 0/4] Fixes for vector misaligned load/store handlers
Bo Gan <[email protected]> Mon, 8 Jun 2026 14:16:59 -0700
| Newsgroups | org.infradead.lists.opensbi |
|---|---|
| Message-ID | <[email protected]> |
Re-visit the vector misaligned load/store handlers and fix: a. Avoid stack overflow by using a small sliding mask[] buffer, thus optimizes stack usage *IMPORTANT* (correctness). There's no- longer a need to have a pre-defined vlen maximum, and worry about whether the stack can hold the mask[] variable. b. Maintain the value of vstart when redirecting uptrap. (optmization) Avoids doing duplicate work when the instruction gets restarted. c. Explicitly set VS dirty in (V)SSTATUS. (correctness), VS in VSSTATUS must be set dirty if coming from V=1. d. Zero out tinst in uptrap if not guest-page fault (correctness). This is a follow up patch to [1] and should be applied on top. [1] https://lore.kernel.org/opensbi/CAEev2e_Vg1mMP4mOKanFX_EGeUzpczRcWW++vBBuN1CfyM0BJw@mail.gmail.com/T/#t Bo Gan (4): lib: sbi: cosmetic changes to reduce indentation lib: sbi: Rework and split sbi_misaligned(_v)_tinst_fixup lib: sbi: Add variable-length unprivilege access functions lib: sbi: Rework misaligned vector load/store include/sbi/sbi_trap_ldst.h | 3 - include/sbi/sbi_unpriv.h | 16 +++ include/sbi/sbi_vector.h | 6 ++ lib/sbi/sbi_trap_ldst.c | 66 +++++++----- lib/sbi/sbi_trap_v_ldst.c | 198 +++++++++++++++++++++++------------- lib/sbi/sbi_unpriv.c | 88 ++++++++++++++-- 6 files changed, 269 insertions(+), 108 deletions(-) -- 2.34.1 -- opensbi mailing list [email protected] http://lists.infradead.org/mailman/listinfo/opensbi