Merge branch 'next' of git://git.kernel.org/pub/scm/virt/kvm/kvm
[firefly-linux-kernel-4.4.55.git] / arch / x86 / include / asm / kvm_host.h
index e5b97be12d2a6798aadfb4a67c4839ed01aafe31..db7c1f2709a270a03429ee1c9089209942647ff5 100644 (file)
@@ -173,6 +173,9 @@ enum {
 #define DR7_FIXED_1    0x00000400
 #define DR7_VOLATILE   0xffff23ff
 
+/* apic attention bits */
+#define KVM_APIC_CHECK_VAPIC   0
+
 /*
  * We don't want allocation failures within the mmu code, so we preallocate
  * enough memory for a single page fault in a cache.
@@ -238,8 +241,6 @@ struct kvm_mmu_page {
 #endif
 
        int write_flooding_count;
-
-       struct rcu_head rcu;
 };
 
 struct kvm_pio_request {
@@ -338,6 +339,7 @@ struct kvm_vcpu_arch {
        u64 efer;
        u64 apic_base;
        struct kvm_lapic *apic;    /* kernel irqchip context */
+       unsigned long apic_attention;
        int32_t apic_arb_prio;
        int mp_state;
        int sipi_vector;
@@ -537,8 +539,6 @@ struct kvm_arch {
        u64 hv_guest_os_id;
        u64 hv_hypercall;
 
-       atomic_t reader_counter;
-
        #ifdef CONFIG_KVM_MMU_AUDIT
        int audit_point;
        #endif
@@ -713,8 +713,9 @@ void kvm_mmu_set_mask_ptes(u64 user_mask, u64 accessed_mask,
 
 int kvm_mmu_reset_context(struct kvm_vcpu *vcpu);
 void kvm_mmu_slot_remove_write_access(struct kvm *kvm, int slot);
-int kvm_mmu_rmap_write_protect(struct kvm *kvm, u64 gfn,
-                              struct kvm_memory_slot *slot);
+void kvm_mmu_write_protect_pt_masked(struct kvm *kvm,
+                                    struct kvm_memory_slot *slot,
+                                    gfn_t gfn_offset, unsigned long mask);
 void kvm_mmu_zap_all(struct kvm *kvm);
 unsigned int kvm_mmu_calculate_mmu_pages(struct kvm *kvm);
 void kvm_mmu_change_mmu_pages(struct kvm *kvm, unsigned int kvm_nr_mmu_pages);