[PATCH v2 0/4] Fixes for vector misaligned load/store handlers

Anup Patel apatel at ventanamicro.com
Tue Jun 16 23:16:44 PDT 2026


On Tue, Jun 9, 2026 at 11:37 AM Bo Gan <ganboing at gmail.com> wrote:
>
> 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

Applied this series to the riscv/opensbi repo.

>
>  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
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi

Thanks,
Anup



More information about the opensbi mailing list