kvm: selftests: vcpu_setup: set cr4.osfxsr
authorAndrew Jones <drjones@redhat.com>
Tue, 18 Sep 2018 17:54:24 +0000 (19:54 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 16 Oct 2018 22:26:02 +0000 (00:26 +0200)
Guest code may want to call functions that have variable arguments.
To do so, we either need to compile with -mno-sse or enable SSE in
the VCPUs. As it should be pretty safe to turn on the feature, and
-mno-sse would make linking test code with standard libraries
difficult, we choose the feature enabling.

Signed-off-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
tools/testing/selftests/kvm/lib/x86.c

index a3122f1949a8e67df2d6cb206ecf353d30f6d015..bb6c65ebfa77e42598c4e1306fc9c744d9f5b396 100644 (file)
@@ -626,7 +626,7 @@ void vcpu_setup(struct kvm_vm *vm, int vcpuid, int pgd_memslot, int gdt_memslot)
        switch (vm->mode) {
        case VM_MODE_FLAT48PG:
                sregs.cr0 = X86_CR0_PE | X86_CR0_NE | X86_CR0_PG;
-               sregs.cr4 |= X86_CR4_PAE;
+               sregs.cr4 |= X86_CR4_PAE | X86_CR4_OSFXSR;
                sregs.efer |= (EFER_LME | EFER_LMA | EFER_NX);
 
                kvm_seg_set_unusable(&sregs.ldt);