Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40f4cba9 authored by Christoffer Dall's avatar Christoffer Dall Committed by Christoffer Dall
Browse files

KVM: arm/arm64: Set VCPU affinity for virt timer irq



As we are about to take physical interrupts for the virtual timer on the
host but want to leave those active while running the VM (and let the VM
deactivate them), we need to set the vtimer PPI affinity accordingly.

Signed-off-by: default avatarChristoffer Dall <cdall@linaro.org>
Reviewed-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
parent 688c50aa
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -649,11 +649,20 @@ int kvm_timer_hyp_init(void)
		return err;
	}

	err = irq_set_vcpu_affinity(host_vtimer_irq, kvm_get_running_vcpus());
	if (err) {
		kvm_err("kvm_arch_timer: error setting vcpu affinity\n");
		goto out_free_irq;
	}

	kvm_info("virtual timer IRQ%d\n", host_vtimer_irq);

	cpuhp_setup_state(CPUHP_AP_KVM_ARM_TIMER_STARTING,
			  "kvm/arm/timer:starting", kvm_timer_starting_cpu,
			  kvm_timer_dying_cpu);
	return 0;
out_free_irq:
	free_percpu_irq(host_vtimer_irq, kvm_get_running_vcpus());
	return err;
}