KVM: s390: add vector BCD enhancements facility to cpumodel
authorChristian Borntraeger <borntraeger@de.ibm.com>
Fri, 28 Dec 2018 08:45:58 +0000 (09:45 +0100)
committerChristian Borntraeger <borntraeger@de.ibm.com>
Thu, 18 Apr 2019 08:14:11 +0000 (10:14 +0200)
If vector support is enabled, the vector BCD enhancements facility
might also be enabled.
We can directly forward this facility to the guest if available
and VX is requested by user space.

Please note that user space can and will have the final decision
on the facility bits for a guests.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Reviewed-by: Collin Walling <walling@linux.ibm.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
arch/s390/kvm/kvm-s390.c

index 03ddbe5e62bc3c32088d377754f9753dc2c9b183..d3f3e63bb164eadd733d82c09188e065a76ec12a 100644 (file)
@@ -661,6 +661,10 @@ int kvm_vm_ioctl_enable_cap(struct kvm *kvm, struct kvm_enable_cap *cap)
                                set_kvm_facility(kvm->arch.model.fac_mask, 148);
                                set_kvm_facility(kvm->arch.model.fac_list, 148);
                        }
+                       if (test_facility(152)) {
+                               set_kvm_facility(kvm->arch.model.fac_mask, 152);
+                               set_kvm_facility(kvm->arch.model.fac_list, 152);
+                       }
                        r = 0;
                } else
                        r = -EINVAL;