Unverified Commit bc79b881 authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!15373 KVM: x86: Reject Hyper-V's SEND_IPI hypercalls if local APIC isn't in-kernel

parents c3866795 7fa6ce50
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -1618,6 +1618,9 @@ static u64 kvm_hv_send_ipi(struct kvm_vcpu *current_vcpu, u64 ingpa, u64 outgpa,
	u32 vector;
	bool all_cpus;

	if (!lapic_in_kernel(current_vcpu))
		return HV_STATUS_INVALID_HYPERCALL_INPUT;

	if (!ex) {
		if (!fast) {
			if (unlikely(kvm_read_guest(kvm, ingpa, &send_ipi,
@@ -2060,6 +2063,7 @@ int kvm_vcpu_ioctl_get_hv_cpuid(struct kvm_vcpu *vcpu, struct kvm_cpuid2 *cpuid,
			ent->eax |= HV_X64_REMOTE_TLB_FLUSH_RECOMMENDED;
			ent->eax |= HV_X64_APIC_ACCESS_RECOMMENDED;
			ent->eax |= HV_X64_RELAXED_TIMING_RECOMMENDED;
			if (!vcpu || lapic_in_kernel(vcpu))
				ent->eax |= HV_X64_CLUSTER_IPI_RECOMMENDED;
			ent->eax |= HV_X64_EX_PROCESSOR_MASKS_RECOMMENDED;
			if (evmcs_ver)