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 > >