mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
KVM: PPC: Fix ONE_REG AltiVec support
commitb4d7f161feupstream. The get and set operations got exchanged by mistake when moving the code from book3s.c to powerpc.c. Fixes:3840edc803Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
921fa9b773
commit
b58731d626
@@ -919,21 +919,17 @@ int kvm_vcpu_ioctl_get_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg)
|
|||||||
r = -ENXIO;
|
r = -ENXIO;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
vcpu->arch.vr.vr[reg->id - KVM_REG_PPC_VR0] = val.vval;
|
val.vval = vcpu->arch.vr.vr[reg->id - KVM_REG_PPC_VR0];
|
||||||
break;
|
break;
|
||||||
case KVM_REG_PPC_VSCR:
|
case KVM_REG_PPC_VSCR:
|
||||||
if (!cpu_has_feature(CPU_FTR_ALTIVEC)) {
|
if (!cpu_has_feature(CPU_FTR_ALTIVEC)) {
|
||||||
r = -ENXIO;
|
r = -ENXIO;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
vcpu->arch.vr.vscr.u[3] = set_reg_val(reg->id, val);
|
val = get_reg_val(reg->id, vcpu->arch.vr.vscr.u[3]);
|
||||||
break;
|
break;
|
||||||
case KVM_REG_PPC_VRSAVE:
|
case KVM_REG_PPC_VRSAVE:
|
||||||
if (!cpu_has_feature(CPU_FTR_ALTIVEC)) {
|
val = get_reg_val(reg->id, vcpu->arch.vrsave);
|
||||||
r = -ENXIO;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
vcpu->arch.vrsave = set_reg_val(reg->id, val);
|
|
||||||
break;
|
break;
|
||||||
#endif /* CONFIG_ALTIVEC */
|
#endif /* CONFIG_ALTIVEC */
|
||||||
default:
|
default:
|
||||||
@@ -974,17 +970,21 @@ int kvm_vcpu_ioctl_set_one_reg(struct kvm_vcpu *vcpu, struct kvm_one_reg *reg)
|
|||||||
r = -ENXIO;
|
r = -ENXIO;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
val.vval = vcpu->arch.vr.vr[reg->id - KVM_REG_PPC_VR0];
|
vcpu->arch.vr.vr[reg->id - KVM_REG_PPC_VR0] = val.vval;
|
||||||
break;
|
break;
|
||||||
case KVM_REG_PPC_VSCR:
|
case KVM_REG_PPC_VSCR:
|
||||||
if (!cpu_has_feature(CPU_FTR_ALTIVEC)) {
|
if (!cpu_has_feature(CPU_FTR_ALTIVEC)) {
|
||||||
r = -ENXIO;
|
r = -ENXIO;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
val = get_reg_val(reg->id, vcpu->arch.vr.vscr.u[3]);
|
vcpu->arch.vr.vscr.u[3] = set_reg_val(reg->id, val);
|
||||||
break;
|
break;
|
||||||
case KVM_REG_PPC_VRSAVE:
|
case KVM_REG_PPC_VRSAVE:
|
||||||
val = get_reg_val(reg->id, vcpu->arch.vrsave);
|
if (!cpu_has_feature(CPU_FTR_ALTIVEC)) {
|
||||||
|
r = -ENXIO;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
vcpu->arch.vrsave = set_reg_val(reg->id, val);
|
||||||
break;
|
break;
|
||||||
#endif /* CONFIG_ALTIVEC */
|
#endif /* CONFIG_ALTIVEC */
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user