Re: [PATCH v5 0/5] LoongArch: KVM: Harden interrupt injection

Huacai Chen <[email protected]> Sun, 2 Aug 2026 22:08:07 +0800
Newsgroups dev.linux.lists.loongarch,org.kernel.vger.kvm,org.kernel.vger.linux-kernel
Message-ID <CAAhV-H49xHp+7qn8dXBc91yksGUCoYmuZWwCte3AHSutGRRK-g@mail.gmail.com>
Series applied, thanks.


Huacai

On Tue, Jul 14, 2026 at 3:32=E2=80=AFPM Bibo Mao <[email protected]> wrot=
e:
>
> API kvm_vcpu_ioctl_interrupt() is mainly to used to deliver interrupt
> from user mode, and internal APIs kvm_queue_irq() and kvm_dequeue_irq()
> are used in kernel mode, also moves IPI interrupt handling within lock
> protection.
>
> Also this patch replaces kvm_err() with WARN_ONCE() to avoid noise
> kernel log.
>
> ---
> v4 ... v5:
>   1. Add one new patch and fix uninitialized stack variable issue with
>      dmsintc.
>   2. In patch 2, set return value with 0 to prevent information leak
>      where return directly with non-aligned address in IPI irqchip.
>
> v3 ... v4:
>   1. From AI assist, replace kvm_err() with kvm_pr_unimpl() rather than
>      WARN_ONCE(), since host may crash with WARN_ONCE() when kernel
>      parameter panic_on_warn=3D1 is set.
>   2. Add one new patch 3 which returns directly when IPI address is not
>      aligned, rather than only print WARN_ON_ONCE() and continue to run.
>
> v2 ... v3:
>   1. Split the patches into three smaller ones, the first patch removes
>      old default case and kvm_err() since it is impossible to happen.
>      And the second patch replaces kvm_err() with WARN_ONCE().
>
> v1 ... v2:
>   1. Add border check with ipnum in eiointc_set_sw_coreisr() and
>      eiointc_update_irq(), so that injected interrupt vector is valid.
>
>   2. Move IPI inject and ack within lock to avoid contention in
>      ipi_set() and ipi_clear().
>
>   3. Add kvm_arch_irqchip_in_kernel() check in user mode irq injection
>     in function kvm_vcpu_ioctl_interrupt(), contention of user mode irq
>     injection is assured from user mode VMM.
> ---
> Bibo Mao (5):
>   LoongArch: KVM: Fix uninitialized stack variable issue with dmsintc
>   LoongArch: KVM: Return directly when IPI address is not aligned
>   LoongArch: KVM: Set default MAILBOX access size with 8
>   LoongArch: KVM: Replace kvm_err() with kvm_pr_unimpl()
>   LoongArch: KVM: Use internal API to deliver interrupt in kernel mode
>
>  arch/loongarch/kvm/exit.c         | 16 +++----
>  arch/loongarch/kvm/intc/dmsintc.c | 17 ++++---
>  arch/loongarch/kvm/intc/eiointc.c | 32 ++++++++------
>  arch/loongarch/kvm/intc/ipi.c     | 73 ++++++++++++++-----------------
>  arch/loongarch/kvm/intc/pch_pic.c | 12 ++---
>  arch/loongarch/kvm/vcpu.c         |  5 ++-
>  6 files changed, 80 insertions(+), 75 deletions(-)
>
>
> base-commit: a13c140cc289c0b7b3770bce5b3ad42ab35074aa
> --
> 2.39.3
>
>