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

!11938 KVM: arm64: Make ICC_*SGI*_EL1 undef in the absence of a vGICv3

parents 0988d5e5 b5b68519
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@
#include <trace/events/kvm.h>

#include "sys_regs.h"
#include "vgic/vgic.h"

#include "trace.h"

@@ -275,6 +276,11 @@ static bool access_gic_sgi(struct kvm_vcpu *vcpu,
{
	bool g1;

	if (!kvm_has_gicv3(vcpu->kvm)) {
		kvm_inject_undefined(vcpu);
		return false;
	}

	if (!p->is_write)
		return read_from_write_only(vcpu, p, r);

+7 −0
Original line number Diff line number Diff line
@@ -330,4 +330,11 @@ void vgic_v4_configure_vsgis(struct kvm *kvm);
void vgic_v4_get_vlpi_state(struct vgic_irq *irq, bool *val);
void vgic_v4_configure_vtimer(struct kvm *kvm);

static inline bool kvm_has_gicv3(struct kvm *kvm)
{
	return (static_branch_unlikely(&kvm_vgic_global_state.gicv3_cpuif) &&
		irqchip_in_kernel(kvm) &&
		kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3);
}

#endif