Hi, I use the kernel:
https://github.com/virtualopensystems/linux-kvm-arm.git
branch: kvm-arm-master.
About the vgic module, In vgic_dispatch_sgi function,
when mode == 0, that is the vcpu of VM should send sgi to the cpu of the
target_cpus list. So , there must be a lack of break in switch case 0
branch.
Here is the patch :
diff --git a/virt/kvm/arm/vgic.c b/virt/kvm/arm/vgic.c
index 907345c..176b59c 100644
--- a/virt/kvm/arm/vgic.c
+++ b/virt/kvm/arm/vgic.c
@@ -915,6 +915,7 @@ static void vgic_dispatch_sgi(struct kvm_vcpu *vcpu, u32 reg)
case 0:
if (!target_cpus)
return;
+ break;
case 1:
target_cpus = ((1 << nrcpus) - 1) ~(1 << vcpu_id) 0xff;
https://github.com/virtualopensystems/linux-kvm-arm.git
branch: kvm-arm-master.
About the vgic module, In vgic_dispatch_sgi function,
when mode == 0, that is the vcpu of VM should send sgi to the cpu of the
target_cpus list. So , there must be a lack of break in switch case 0
branch.
Here is the patch :
diff --git a/virt/kvm/arm/vgic.c b/virt/kvm/arm/vgic.c
index 907345c..176b59c 100644
--- a/virt/kvm/arm/vgic.c
+++ b/virt/kvm/arm/vgic.c
@@ -915,6 +915,7 @@ static void vgic_dispatch_sgi(struct kvm_vcpu *vcpu, u32 reg)
case 0:
if (!target_cpus)
return;
+ break;
case 1:
target_cpus = ((1 << nrcpus) - 1) ~(1 << vcpu_id) 0xff;