|
@@ -677,9 +677,9 @@ int kvm_arch_vcpu_ioctl_set_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs)
|
|
|
{
|
|
|
int i;
|
|
|
|
|
|
- for (i = 0; i < 32; i++)
|
|
|
+ for (i = 1; i < ARRAY_SIZE(vcpu->arch.gprs); i++)
|
|
|
vcpu->arch.gprs[i] = regs->gpr[i];
|
|
|
-
|
|
|
+ vcpu->arch.gprs[0] = 0; /* zero is special, and cannot be set. */
|
|
|
vcpu->arch.hi = regs->hi;
|
|
|
vcpu->arch.lo = regs->lo;
|
|
|
vcpu->arch.pc = regs->pc;
|
|
@@ -691,7 +691,7 @@ int kvm_arch_vcpu_ioctl_get_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs)
|
|
|
{
|
|
|
int i;
|
|
|
|
|
|
- for (i = 0; i < 32; i++)
|
|
|
+ for (i = 0; i < ARRAY_SIZE(vcpu->arch.gprs); i++)
|
|
|
regs->gpr[i] = vcpu->arch.gprs[i];
|
|
|
|
|
|
regs->hi = vcpu->arch.hi;
|