On Mon, Jun 1, 2026 at 3:56 PM Yong-Xuan Wang <[email protected]> wrote: > > This series fixes three bugs in the SBI FWFT (Firmware Features) extension > and improves the related selftest infrastructure. > The bugs are: > 1. Missing CSR dirty marking: When userspace sets FWFT feature values via > KVM_SET_ONE_REG, modified CSRs (e.g., henvcfg.PMM for pointer masking) > are not marked dirty, leading to stale state after vCPU scheduling or > migration. > 2. Hardware probing side effects: The try_to_set_pmm() function modifies > HENVCFG.PMM during hardware capability detection but fails to restore > the original value, leaving the CSR in an altered state that affects > subsequent operations. > 3. Stale feature exposure: FWFT feature support is cached at vCPU > initialization time. When userspace subsequently disables ISA extensions > via KVM_SET_ONE_REG, the cached support status is not updated, allowing > guests to access features that depend on disabled extensions. > Patches 1-3 fix these bugs separately. > > The selftest improvements (patches 4-5) enhance the get-reg-list test by > refactoring the extension sublist infrastructure and splitting FWFT > feature testing into separate, properly-gated sublists. > > --- > Changes in v5: > - Add CSR dirty marking fix (new patch 1/5) (sashiko-bot) > - Split original FWFT bug fix into two focused patches > - Add init() callback with try_to_set_pmm() restoration fix (new patch > 2/5) (sashiko-bot) > - Keep runtime supported() checks as separate patch (patch 3/5) > - Link to v4: > https://patch.msgid.link/[email protected] > > Changes in v4: > - Rename the title of cover letter > - Disable preemption when running try_to_set_pmm() (sashiko-bot) > - Remove check_supported_reg() (sashiko-bot) > - Link to v3: > https://patch.msgid.link/[email protected] > > Changes in v3: > - Restore 'supported' field with init() callback for initialization probing > (sashiko-bot) > - Add NULL checks before calling feature->supported() in all functions > - Fix isa_ext_enabled tracking logic and restore isa_ext_cant_disable array > - Add sbi_ext_enabled tracking and enhance dependency checking (sashiko-bot) > - Refine code organization and variable naming consistency (sashiko-bot) > - Link to v2: > https://patch.msgid.link/[email protected] > > Changes in v2: > - Fix FWFT stale feature exposure by removing static 'supported' field > - Refactor get-reg-list test to use unified extension sublist macros > - Split FWFT testing into per-feature sublists with runtime checks > (Andrew) > > To: Anup Patel <[email protected]> > To: Atish Patra <[email protected]> > To: Paul Walmsley <[email protected]> > To: Palmer Dabbelt <[email protected]> > To: Albert Ou <[email protected]> > To: Alexandre Ghiti <[email protected]> > To: Clément Léger <[email protected]> > To: Andrew Jones <[email protected]> > To: Paolo Bonzini <[email protected]> > To: Shuah Khan <[email protected]> > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > Cc: [email protected] > > --- > Yong-Xuan Wang (5): > KVM: RISC-V: SBI FWFT: Mark vCPU CSRs dirty after setting feature value > KVM: RISC-V: SBI FWFT: Add optional init() callback for hardware probing > KVM: RISC-V: SBI FWFT: Fix stale feature exposure after runtime > extension changes > KVM: riscv: selftests: Refactor ISA and SBI extension sublist macros > KVM: riscv: selftests: Split SBI FWFT into separate feature-specific > sublists
Queued this series for Linux-7.2 Regards, Anup

