diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/kvm_host.h | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index b8e9a43e501a..7d21cf9f4380 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h | |||
| @@ -192,7 +192,7 @@ struct kvm_async_pf { | |||
| 192 | 192 | ||
| 193 | void kvm_clear_async_pf_completion_queue(struct kvm_vcpu *vcpu); | 193 | void kvm_clear_async_pf_completion_queue(struct kvm_vcpu *vcpu); |
| 194 | void kvm_check_async_pf_completion(struct kvm_vcpu *vcpu); | 194 | void kvm_check_async_pf_completion(struct kvm_vcpu *vcpu); |
| 195 | int kvm_setup_async_pf(struct kvm_vcpu *vcpu, gva_t gva, gfn_t gfn, | 195 | int kvm_setup_async_pf(struct kvm_vcpu *vcpu, gva_t gva, unsigned long hva, |
| 196 | struct kvm_arch_async_pf *arch); | 196 | struct kvm_arch_async_pf *arch); |
| 197 | int kvm_async_pf_wakeup_all(struct kvm_vcpu *vcpu); | 197 | int kvm_async_pf_wakeup_all(struct kvm_vcpu *vcpu); |
| 198 | #endif | 198 | #endif |
| @@ -297,6 +297,14 @@ static inline unsigned long kvm_dirty_bitmap_bytes(struct kvm_memory_slot *memsl | |||
| 297 | return ALIGN(memslot->npages, BITS_PER_LONG) / 8; | 297 | return ALIGN(memslot->npages, BITS_PER_LONG) / 8; |
| 298 | } | 298 | } |
| 299 | 299 | ||
| 300 | struct kvm_s390_adapter_int { | ||
| 301 | u64 ind_addr; | ||
| 302 | u64 summary_addr; | ||
| 303 | u64 ind_offset; | ||
| 304 | u32 summary_offset; | ||
| 305 | u32 adapter_id; | ||
| 306 | }; | ||
| 307 | |||
| 300 | struct kvm_kernel_irq_routing_entry { | 308 | struct kvm_kernel_irq_routing_entry { |
| 301 | u32 gsi; | 309 | u32 gsi; |
| 302 | u32 type; | 310 | u32 type; |
| @@ -309,6 +317,7 @@ struct kvm_kernel_irq_routing_entry { | |||
| 309 | unsigned pin; | 317 | unsigned pin; |
| 310 | } irqchip; | 318 | } irqchip; |
| 311 | struct msi_msg msi; | 319 | struct msi_msg msi; |
| 320 | struct kvm_s390_adapter_int adapter; | ||
| 312 | }; | 321 | }; |
| 313 | struct hlist_node link; | 322 | struct hlist_node link; |
| 314 | }; | 323 | }; |
| @@ -401,7 +410,9 @@ struct kvm { | |||
| 401 | unsigned long mmu_notifier_seq; | 410 | unsigned long mmu_notifier_seq; |
| 402 | long mmu_notifier_count; | 411 | long mmu_notifier_count; |
| 403 | #endif | 412 | #endif |
| 404 | long tlbs_dirty; | 413 | /* Protected by mmu_lock */ |
| 414 | bool tlbs_dirty; | ||
| 415 | |||
| 405 | struct list_head devices; | 416 | struct list_head devices; |
| 406 | }; | 417 | }; |
| 407 | 418 | ||
| @@ -911,7 +922,11 @@ static inline int mmu_notifier_retry(struct kvm *kvm, unsigned long mmu_seq) | |||
| 911 | 922 | ||
| 912 | #ifdef CONFIG_HAVE_KVM_IRQ_ROUTING | 923 | #ifdef CONFIG_HAVE_KVM_IRQ_ROUTING |
| 913 | 924 | ||
| 925 | #ifdef CONFIG_S390 | ||
| 926 | #define KVM_MAX_IRQ_ROUTES 4096 //FIXME: we can have more than that... | ||
| 927 | #else | ||
| 914 | #define KVM_MAX_IRQ_ROUTES 1024 | 928 | #define KVM_MAX_IRQ_ROUTES 1024 |
| 929 | #endif | ||
| 915 | 930 | ||
| 916 | int kvm_setup_default_irq_routing(struct kvm *kvm); | 931 | int kvm_setup_default_irq_routing(struct kvm *kvm); |
| 917 | int kvm_set_irq_routing(struct kvm *kvm, | 932 | int kvm_set_irq_routing(struct kvm *kvm, |
| @@ -1064,6 +1079,7 @@ extern struct kvm_device_ops kvm_mpic_ops; | |||
| 1064 | extern struct kvm_device_ops kvm_xics_ops; | 1079 | extern struct kvm_device_ops kvm_xics_ops; |
| 1065 | extern struct kvm_device_ops kvm_vfio_ops; | 1080 | extern struct kvm_device_ops kvm_vfio_ops; |
| 1066 | extern struct kvm_device_ops kvm_arm_vgic_v2_ops; | 1081 | extern struct kvm_device_ops kvm_arm_vgic_v2_ops; |
| 1082 | extern struct kvm_device_ops kvm_flic_ops; | ||
| 1067 | 1083 | ||
| 1068 | #ifdef CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT | 1084 | #ifdef CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT |
| 1069 | 1085 | ||
