[PATCH] KVM: riscv: Fix infinite loop in NACL hfence entry allocation

Anup Patel anup at brainfault.org
Sat Aug 1 01:58:13 PDT 2026


On Thu, Jul 16, 2026 at 1:08 PM Zongmin Zhou <min_halo at 163.com> wrote:
>
> From: Zongmin Zhou <zhouzongmin at kylinos.cn>
>
> try_count is initialized to 5 but never decremented in the retry path,
> making the `if (try_count)` check always true. If all NACL shared memory
> hfence entries remain in the pending state after sync, the function loops
> forever, causing a soft lockup. Decrement try_count on each retry so the
> fallback warning and return become reachable.
>
> Fixes: d466c19cead5 ("RISC-V: KVM: Add common nested acceleration support")
> Signed-off-by: Zongmin Zhou <zhouzongmin at kylinos.cn>

LGTM.

Reviewed-by: Anup Patel <anup at brainfault.org>

Queued this patch for Linux-7.3

Thanks,
Anup

> ---
>  arch/riscv/kvm/nacl.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/riscv/kvm/nacl.c b/arch/riscv/kvm/nacl.c
> index 6f9f8963e9dd..9aff03c4f667 100644
> --- a/arch/riscv/kvm/nacl.c
> +++ b/arch/riscv/kvm/nacl.c
> @@ -33,7 +33,7 @@ void __kvm_riscv_nacl_hfence(void *shmem,
>         }
>
>         if (ent < 0) {
> -               if (try_count) {
> +               if (try_count--) {
>                         nacl_sync_hfence(-1UL);
>                         goto again;
>                 } else {
> --
> 2.34.1
>
>
> No virus found
>                 Checked by Hillstone Network AntiVirus
>



More information about the kvm-riscv mailing list