MIPS: KVM: Pass all unknown registers to callbacks
Pass all unrecognised register IDs through to the set_one_reg() and get_one_reg() callbacks, not just select ones. This allows implementation specific registers to be more easily added without having to modify arch/mips/kvm/mips.c. Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Radim Krčmář <rkrcmar@redhat.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: linux-mips@linux-mips.org Cc: kvm@vger.kernel.org Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Родитель
258f3a2ea9
Коммит
cc68d22f97
|
@ -688,16 +688,11 @@ static int kvm_mips_get_reg(struct kvm_vcpu *vcpu,
|
||||||
v = (long)kvm_read_c0_guest_errorepc(cop0);
|
v = (long)kvm_read_c0_guest_errorepc(cop0);
|
||||||
break;
|
break;
|
||||||
/* registers to be handled specially */
|
/* registers to be handled specially */
|
||||||
case KVM_REG_MIPS_CP0_COUNT:
|
default:
|
||||||
case KVM_REG_MIPS_COUNT_CTL:
|
|
||||||
case KVM_REG_MIPS_COUNT_RESUME:
|
|
||||||
case KVM_REG_MIPS_COUNT_HZ:
|
|
||||||
ret = kvm_mips_callbacks->get_one_reg(vcpu, reg, &v);
|
ret = kvm_mips_callbacks->get_one_reg(vcpu, reg, &v);
|
||||||
if (ret)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
}
|
||||||
if ((reg->id & KVM_REG_SIZE_MASK) == KVM_REG_SIZE_U64) {
|
if ((reg->id & KVM_REG_SIZE_MASK) == KVM_REG_SIZE_U64) {
|
||||||
u64 __user *uaddr64 = (u64 __user *)(long)reg->addr;
|
u64 __user *uaddr64 = (u64 __user *)(long)reg->addr;
|
||||||
|
@ -859,21 +854,8 @@ static int kvm_mips_set_reg(struct kvm_vcpu *vcpu,
|
||||||
kvm_write_c0_guest_errorepc(cop0, v);
|
kvm_write_c0_guest_errorepc(cop0, v);
|
||||||
break;
|
break;
|
||||||
/* registers to be handled specially */
|
/* registers to be handled specially */
|
||||||
case KVM_REG_MIPS_CP0_COUNT:
|
|
||||||
case KVM_REG_MIPS_CP0_COMPARE:
|
|
||||||
case KVM_REG_MIPS_CP0_CAUSE:
|
|
||||||
case KVM_REG_MIPS_CP0_CONFIG:
|
|
||||||
case KVM_REG_MIPS_CP0_CONFIG1:
|
|
||||||
case KVM_REG_MIPS_CP0_CONFIG2:
|
|
||||||
case KVM_REG_MIPS_CP0_CONFIG3:
|
|
||||||
case KVM_REG_MIPS_CP0_CONFIG4:
|
|
||||||
case KVM_REG_MIPS_CP0_CONFIG5:
|
|
||||||
case KVM_REG_MIPS_COUNT_CTL:
|
|
||||||
case KVM_REG_MIPS_COUNT_RESUME:
|
|
||||||
case KVM_REG_MIPS_COUNT_HZ:
|
|
||||||
return kvm_mips_callbacks->set_one_reg(vcpu, reg, v);
|
|
||||||
default:
|
default:
|
||||||
return -EINVAL;
|
return kvm_mips_callbacks->set_one_reg(vcpu, reg, v);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче