|
@@ -134,6 +134,17 @@ static bool access_gic_sgi(struct kvm_vcpu *vcpu,
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+static bool access_gic_sre(struct kvm_vcpu *vcpu,
|
|
|
+ struct sys_reg_params *p,
|
|
|
+ const struct sys_reg_desc *r)
|
|
|
+{
|
|
|
+ if (p->is_write)
|
|
|
+ return ignore_write(vcpu, p);
|
|
|
+
|
|
|
+ p->regval = vcpu->arch.vgic_cpu.vgic_v3.vgic_sre;
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
static bool trap_raz_wi(struct kvm_vcpu *vcpu,
|
|
|
struct sys_reg_params *p,
|
|
|
const struct sys_reg_desc *r)
|
|
@@ -958,7 +969,7 @@ static const struct sys_reg_desc sys_reg_descs[] = {
|
|
|
access_gic_sgi },
|
|
|
/* ICC_SRE_EL1 */
|
|
|
{ Op0(0b11), Op1(0b000), CRn(0b1100), CRm(0b1100), Op2(0b101),
|
|
|
- trap_raz_wi },
|
|
|
+ access_gic_sre },
|
|
|
|
|
|
/* CONTEXTIDR_EL1 */
|
|
|
{ Op0(0b11), Op1(0b000), CRn(0b1101), CRm(0b0000), Op2(0b001),
|