diff options
Diffstat (limited to 'arch/x86/include/asm/kvm_host.h')
-rw-r--r-- | arch/x86/include/asm/kvm_host.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h index a57cdeacc4d2..2bda62485c4c 100644 --- a/arch/x86/include/asm/kvm_host.h +++ b/arch/x86/include/asm/kvm_host.h | |||
@@ -15,6 +15,7 @@ | |||
15 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
16 | #include <linux/mmu_notifier.h> | 16 | #include <linux/mmu_notifier.h> |
17 | #include <linux/tracepoint.h> | 17 | #include <linux/tracepoint.h> |
18 | #include <linux/cpumask.h> | ||
18 | 19 | ||
19 | #include <linux/kvm.h> | 20 | #include <linux/kvm.h> |
20 | #include <linux/kvm_para.h> | 21 | #include <linux/kvm_para.h> |
@@ -358,6 +359,8 @@ struct kvm_vcpu_arch { | |||
358 | 359 | ||
359 | /* fields used by HYPER-V emulation */ | 360 | /* fields used by HYPER-V emulation */ |
360 | u64 hv_vapic; | 361 | u64 hv_vapic; |
362 | |||
363 | cpumask_var_t wbinvd_dirty_mask; | ||
361 | }; | 364 | }; |
362 | 365 | ||
363 | struct kvm_arch { | 366 | struct kvm_arch { |
@@ -514,6 +517,8 @@ struct kvm_x86_ops { | |||
514 | 517 | ||
515 | void (*set_supported_cpuid)(u32 func, struct kvm_cpuid_entry2 *entry); | 518 | void (*set_supported_cpuid)(u32 func, struct kvm_cpuid_entry2 *entry); |
516 | 519 | ||
520 | bool (*has_wbinvd_exit)(void); | ||
521 | |||
517 | const struct trace_print_flags *exit_reasons_str; | 522 | const struct trace_print_flags *exit_reasons_str; |
518 | }; | 523 | }; |
519 | 524 | ||
@@ -571,6 +576,7 @@ void kvm_emulate_cpuid(struct kvm_vcpu *vcpu); | |||
571 | int kvm_emulate_halt(struct kvm_vcpu *vcpu); | 576 | int kvm_emulate_halt(struct kvm_vcpu *vcpu); |
572 | int emulate_invlpg(struct kvm_vcpu *vcpu, gva_t address); | 577 | int emulate_invlpg(struct kvm_vcpu *vcpu, gva_t address); |
573 | int emulate_clts(struct kvm_vcpu *vcpu); | 578 | int emulate_clts(struct kvm_vcpu *vcpu); |
579 | int kvm_emulate_wbinvd(struct kvm_vcpu *vcpu); | ||
574 | 580 | ||
575 | void kvm_get_segment(struct kvm_vcpu *vcpu, struct kvm_segment *var, int seg); | 581 | void kvm_get_segment(struct kvm_vcpu *vcpu, struct kvm_segment *var, int seg); |
576 | int kvm_load_segment_descriptor(struct kvm_vcpu *vcpu, u16 selector, int seg); | 582 | int kvm_load_segment_descriptor(struct kvm_vcpu *vcpu, u16 selector, int seg); |