Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.1
kvm-kmp
kvm-preXX-macos.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File kvm-preXX-macos.patch of Package kvm-kmp
Index: kvm-kmod-2.6.30.1/x86/svm.c =================================================================== --- kvm-kmod-2.6.30.1.orig/x86/svm.c +++ kvm-kmod-2.6.30.1/x86/svm.c @@ -1877,6 +1877,22 @@ static int clgi_interception(struct vcpu return 1; } +static int monitor_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + svm->next_rip = kvm_rip_read(&svm->vcpu) + 3; + skip_emulated_instruction(&svm->vcpu); + + return 1; +} + +static int mwait_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) +{ + svm->next_rip = kvm_rip_read(&svm->vcpu) + 3; + skip_emulated_instruction(&svm->vcpu); + + return kvm_emulate_halt(&svm->vcpu); +} + static int invalid_op_interception(struct vcpu_svm *svm, struct kvm_run *kvm_run) { @@ -2196,8 +2212,8 @@ static int (*svm_exit_handlers[])(struct [SVM_EXIT_CLGI] = clgi_interception, [SVM_EXIT_SKINIT] = invalid_op_interception, [SVM_EXIT_WBINVD] = emulate_on_interception, - [SVM_EXIT_MONITOR] = invalid_op_interception, - [SVM_EXIT_MWAIT] = invalid_op_interception, + [SVM_EXIT_MONITOR] = monitor_interception, + [SVM_EXIT_MWAIT] = mwait_interception, [SVM_EXIT_NPF] = pf_interception, }; Index: kvm-kmod-2.6.30.1/x86/x86.c =================================================================== --- kvm-kmod-2.6.30.1.orig/x86/x86.c +++ kvm-kmod-2.6.30.1/x86/x86.c @@ -813,6 +813,7 @@ int kvm_set_msr_common(struct kvm_vcpu * case MSR_IA32_UCODE_REV: case MSR_IA32_UCODE_WRITE: case MSR_VM_HSAVE_PA: + case 0xe2: break; case 0x200 ... 0x2ff: return set_msr_mtrr(vcpu, msr, data); @@ -935,6 +936,7 @@ int kvm_get_msr_common(struct kvm_vcpu * case MSR_IA32_LASTINTFROMIP: case MSR_IA32_LASTINTTOIP: case MSR_VM_HSAVE_PA: + case 0xe2: data = 0; break; case MSR_MTRRcap: @@ -1316,7 +1318,8 @@ static void do_cpuid_ent(struct kvm_cpui bit(X86_FEATURE_3DNOWEXT) | bit(X86_FEATURE_3DNOW); const u32 kvm_supported_word3_x86_features = - bit(X86_FEATURE_XMM3) | bit(X86_FEATURE_CX16); + bit(X86_FEATURE_XMM3) | bit(X86_FEATURE_CX16) | + bit((4*32+ 3)) /* MONITOR */; const u32 kvm_supported_word6_x86_features = bit(X86_FEATURE_LAHF_LM) | bit(X86_FEATURE_CMP_LEGACY) | bit(X86_FEATURE_SVM);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor