File tree Expand file tree Collapse file tree 1 file changed +15
-10
lines changed Expand file tree Collapse file tree 1 file changed +15
-10
lines changed Original file line number Diff line number Diff line change @@ -426,21 +426,26 @@ static int kvm_eiointc_ctrl_access(struct kvm_device *dev,
426426 struct loongarch_eiointc * s = dev -> kvm -> arch .eiointc ;
427427
428428 data = (void __user * )attr -> addr ;
429- spin_lock_irqsave (& s -> lock , flags );
430429 switch (type ) {
431430 case KVM_DEV_LOONGARCH_EXTIOI_CTRL_INIT_NUM_CPU :
431+ case KVM_DEV_LOONGARCH_EXTIOI_CTRL_INIT_FEATURE :
432432 if (copy_from_user (& val , data , 4 ))
433- ret = - EFAULT ;
434- else {
435- if (val >= EIOINTC_ROUTE_MAX_VCPUS )
436- ret = - EINVAL ;
437- else
438- s -> num_cpu = val ;
439- }
433+ return - EFAULT ;
434+ break ;
435+ default :
436+ break ;
437+ }
438+
439+ spin_lock_irqsave (& s -> lock , flags );
440+ switch (type ) {
441+ case KVM_DEV_LOONGARCH_EXTIOI_CTRL_INIT_NUM_CPU :
442+ if (val >= EIOINTC_ROUTE_MAX_VCPUS )
443+ ret = - EINVAL ;
444+ else
445+ s -> num_cpu = val ;
440446 break ;
441447 case KVM_DEV_LOONGARCH_EXTIOI_CTRL_INIT_FEATURE :
442- if (copy_from_user (& s -> features , data , 4 ))
443- ret = - EFAULT ;
448+ s -> features = val ;
444449 if (!(s -> features & BIT (EIOINTC_HAS_VIRT_EXTENSION )))
445450 s -> status |= BIT (EIOINTC_ENABLE );
446451 break ;
You can’t perform that action at this time.
0 commit comments