Message ID | 20230609090832.2131037-11-zhaotianrui@loongson.cn (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add KVM LoongArch support | expand |
Reviewed-by: Bibo Mao <maobibo@loongson.cn> Regards Bibo, Mao 在 2023/6/9 17:08, Tianrui Zhao 写道: > Implement LoongArch vcpu KVM_ENABLE_CAP ioctl interface. > > Signed-off-by: Tianrui Zhao <zhaotianrui@loongson.cn> > --- > arch/loongarch/kvm/vcpu.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/arch/loongarch/kvm/vcpu.c b/arch/loongarch/kvm/vcpu.c > index b0cce413762d..da97b77da8eb 100644 > --- a/arch/loongarch/kvm/vcpu.c > +++ b/arch/loongarch/kvm/vcpu.c > @@ -186,6 +186,16 @@ int kvm_arch_vcpu_ioctl_set_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs) > return 0; > } > > +static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu, > + struct kvm_enable_cap *cap) > +{ > + /* > + * FPU is enable by default, do not support any other caps, > + * and later we will support such as LSX cap. > + */ > + return -EINVAL; > +} > + > long kvm_arch_vcpu_ioctl(struct file *filp, > unsigned int ioctl, unsigned long arg) > { > @@ -209,6 +219,15 @@ long kvm_arch_vcpu_ioctl(struct file *filp, > r = _kvm_get_reg(vcpu, ®); > break; > } > + case KVM_ENABLE_CAP: { > + struct kvm_enable_cap cap; > + > + r = -EFAULT; > + if (copy_from_user(&cap, argp, sizeof(cap))) > + break; > + r = kvm_vcpu_ioctl_enable_cap(vcpu, &cap); > + break; > + } > default: > r = -ENOIOCTLCMD; > break;
diff --git a/arch/loongarch/kvm/vcpu.c b/arch/loongarch/kvm/vcpu.c index b0cce413762d..da97b77da8eb 100644 --- a/arch/loongarch/kvm/vcpu.c +++ b/arch/loongarch/kvm/vcpu.c @@ -186,6 +186,16 @@ int kvm_arch_vcpu_ioctl_set_regs(struct kvm_vcpu *vcpu, struct kvm_regs *regs) return 0; } +static int kvm_vcpu_ioctl_enable_cap(struct kvm_vcpu *vcpu, + struct kvm_enable_cap *cap) +{ + /* + * FPU is enable by default, do not support any other caps, + * and later we will support such as LSX cap. + */ + return -EINVAL; +} + long kvm_arch_vcpu_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg) { @@ -209,6 +219,15 @@ long kvm_arch_vcpu_ioctl(struct file *filp, r = _kvm_get_reg(vcpu, ®); break; } + case KVM_ENABLE_CAP: { + struct kvm_enable_cap cap; + + r = -EFAULT; + if (copy_from_user(&cap, argp, sizeof(cap))) + break; + r = kvm_vcpu_ioctl_enable_cap(vcpu, &cap); + break; + } default: r = -ENOIOCTLCMD; break;
Implement LoongArch vcpu KVM_ENABLE_CAP ioctl interface. Signed-off-by: Tianrui Zhao <zhaotianrui@loongson.cn> --- arch/loongarch/kvm/vcpu.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+)