LoongArch: KVM: Add DMSINTC inject msi to vCPU

Implement irqfd that deliver msi to vCPU and vCPU dmsintc irq injection.
Add pch_msi_set_irq() choice dmsintc to set msi irq by the msg_addr and
implement dmsintc set msi irq.

Signed-off-by: Song Gao <gaosong@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
This commit is contained in:
Song Gao
2026-04-09 18:56:37 +08:00
committed by Huacai Chen
parent 229132c309
commit 03de5eecb0
6 changed files with 99 additions and 8 deletions

View File

@@ -29,9 +29,7 @@ int kvm_set_msi(struct kvm_kernel_irq_routing_entry *e,
if (!level)
return -1;
pch_msi_set_irq(kvm, e->msi.data, level);
return 0;
return pch_msi_set_irq(kvm, e, level);
}
/*
@@ -71,13 +69,15 @@ int kvm_set_routing_entry(struct kvm *kvm,
int kvm_arch_set_irq_inatomic(struct kvm_kernel_irq_routing_entry *e,
struct kvm *kvm, int irq_source_id, int level, bool line_status)
{
if (!level)
return -EWOULDBLOCK;
switch (e->type) {
case KVM_IRQ_ROUTING_IRQCHIP:
pch_pic_set_irq(kvm->arch.pch_pic, e->irqchip.pin, level);
return 0;
case KVM_IRQ_ROUTING_MSI:
pch_msi_set_irq(kvm, e->msi.data, level);
return 0;
return pch_msi_set_irq(kvm, e, level);
default:
return -EWOULDBLOCK;
}