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:
James Hogan 2016-06-15 19:29:48 +01:00 коммит произвёл Paolo Bonzini
Родитель 258f3a2ea9
Коммит cc68d22f97
1 изменённых файлов: 2 добавлений и 20 удалений

Просмотреть файл

@ -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;
} }