[PATCH v2 0/4] Fixes for vector misaligned load/store handlers
Bo Gan <[email protected]> Mon, 8 Jun 2026 23:00:20 -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 --- v2: Fix the wrong PATCH 4/4 generated in v1. --- 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 | 201 ++++++++++++++++++++++-------------- lib/sbi/sbi_unpriv.c | 88 ++++++++++++++-- 6 files changed, 270 insertions(+), 110 deletions(-) -- 2.34.1 -- opensbi mailing list [email protected] http://lists.infradead.org/mailman/listinfo/opensbi