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

!11988 [sync] PR-11938: KVM: arm64: Make ICC_*SGI*_EL1 undef in the absence of a vGICv3

parents fc942742 f88890bb
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
@@ -319,4 +319,11 @@ void vgic_v4_teardown(struct kvm *kvm);
void vgic_v4_configure_vsgis(struct kvm *kvm);
void vgic_v4_get_vlpi_state(struct vgic_irq *irq, bool *val);

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