[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v3 029/114] hw/intc: send IMSIC MSI via kvm_irqchip_send_msi()
- To: qemu-devel@xxxxxxxxxx
- From: Yonggang Luo <luoyonggang@xxxxxxxxx>
- Date: Wed, 23 Sep 2026 21:15:03 +0800
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=gmail.com header.i="@gmail.com" header.h="Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From"
- Cc: Cornelia Huck <cohuck@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx, Chao Liu <chao.liu@xxxxxxxxxxxxxxxxxx>, Igor Mammedov <imammedo@xxxxxxxxxx>, Alistair Francis <alistair.francis@xxxxxxx>, Daniel Henrique Barboza <daniel.barboza@xxxxxxxxxxxxxxxx>, Peter Xu <peterx@xxxxxxxxxx>, Eric Blake <eblake@xxxxxxxxxx>, Philippe Mathieu-Daudé <philmd@xxxxxxxxxxxxxxxx>, Liu Zhiwei <zhiwei_liu@xxxxxxxxxxxxxxxxx>, Pierrick Bouvier <pierrick.bouvier@xxxxxxxxxxxxxxxx>, Peter Maydell <peter.maydell@xxxxxxxxxx>, Sunil V L <sunilvl@xxxxxxxxxxxxxxxx>, Stefan Hajnoczi <stefanha@xxxxxxxxxx>, Palmer Dabbelt <palmer@xxxxxxxxxxx>, Fabiano Rosas <farosas@xxxxxxx>, Xianglai Li <lixianglai@xxxxxxxxxxx>, Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx>, Max Filippov <jcmvbkbc@xxxxxxxxx>, qemu-ppc@xxxxxxxxxx, Zhao Liu <zhao1.liu@xxxxxxxxx>, Paolo Bonzini <pbonzini@xxxxxxxxxx>, Bibo Mao <maobibo@xxxxxxxxxxx>, "Michael S. Tsirkin" <mst@xxxxxxxxxx>, Laurent Vivier <laurent@xxxxxxxxx>, David Hildenbrand <david@xxxxxxxxxx>, Richard Henderson <richard.henderson@xxxxxxxxxx>, Daniel P. Berrangé <berrange@xxxxxxxxxx>, Nicholas Piggin <npiggin@xxxxxxxxx>, qemu-riscv@xxxxxxxxxx, kvm@xxxxxxxxxxxxxxx, "Edgar E. Iglesias" <edgar.iglesias@xxxxxxxxx>, Alex Bennée <alex.bennee@xxxxxxxxxx>, Stafford Horne <shorne@xxxxxxxxx>, Marc-André Lureau <marcandre.lureau@xxxxxxxxxx>, Markus Armbruster <armbru@xxxxxxxxxx>, Weiwei Li <liwei1518@xxxxxxxxx>, Song Gao <17746591750@xxxxxxx>, qemu-arm@xxxxxxxxxx, qemu-s390x@xxxxxxxxxx, Brian Cain <brian.cain@xxxxxxxxxxxxxxxx>
- Delivery-date: Wed, 23 Sep 2026 13:21:58 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
- Drop the CONFIG_KVM ioctl path and call kvm_irqchip_send_msi() when
KVM and an in-kernel irqchip are enabled.
---
hw/intc/riscv_imsic.c | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/hw/intc/riscv_imsic.c b/hw/intc/riscv_imsic.c
index 30fb60cc312..033b7813060 100644
--- a/hw/intc/riscv_imsic.c
+++ b/hw/intc/riscv_imsic.c
@@ -311,19 +311,15 @@ static void riscv_imsic_write(void *opaque, hwaddr addr,
uint64_t value,
goto err;
}
-#if defined(CONFIG_KVM)
- if (kvm_irqchip_in_kernel()) {
- struct kvm_msi msi;
-
- msi.address_lo = extract64(imsic->mmio.addr + addr, 0, 32);
- msi.address_hi = extract64(imsic->mmio.addr + addr, 32, 32);
- msi.data = le32_to_cpu(value);
-
- kvm_vm_ioctl(kvm_state, KVM_SIGNAL_MSI, &msi);
+ if (kvm_enabled() && kvm_irqchip_in_kernel()) {
+ MSIMessage msg = {
+ .address = imsic->mmio.addr + addr,
+ .data = (uint32_t)value,
+ };
+ kvm_irqchip_send_msi(kvm_state, msg);
return;
}
-#endif
/* Writes only supported for MSI little-endian registers */
page = addr >> IMSIC_MMIO_PAGE_SHIFT;
--
2.52.0.windows.1
|