summaryrefslogtreecommitdiffstats
path: root/drivers/hv
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-12-26 14:46:28 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2018-12-26 14:46:28 -0500
commit42b00f122cfbfed79fc29b0b3610f3abbb1e3864 (patch)
treec110a18c03e9ada45b6f3593843f0a06b36773dc /drivers/hv
parent460023a5d1d2aa0f733b6708b2fae5ea9f9dfec0 (diff)
parenta0aea130afebcd091d5396d13f25b9da24c9144a (diff)
Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm
Pull KVM updates from Paolo Bonzini: "ARM: - selftests improvements - large PUD support for HugeTLB - single-stepping fixes - improved tracing - various timer and vGIC fixes x86: - Processor Tracing virtualization - STIBP support - some correctness fixes - refactorings and splitting of vmx.c - use the Hyper-V range TLB flush hypercall - reduce order of vcpu struct - WBNOINVD support - do not use -ftrace for __noclone functions - nested guest support for PAUSE filtering on AMD - more Hyper-V enlightenments (direct mode for synthetic timers) PPC: - nested VFIO s390: - bugfixes only this time" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (171 commits) KVM: x86: Add CPUID support for new instruction WBNOINVD kvm: selftests: ucall: fix exit mmio address guessing Revert "compiler-gcc: disable -ftracer for __noclone functions" KVM: VMX: Move VM-Enter + VM-Exit handling to non-inline sub-routines KVM: VMX: Explicitly reference RCX as the vmx_vcpu pointer in asm blobs KVM: x86: Use jmp to invoke kvm_spurious_fault() from .fixup MAINTAINERS: Add arch/x86/kvm sub-directories to existing KVM/x86 entry KVM/x86: Use SVM assembly instruction mnemonics instead of .byte streams KVM/MMU: Flush tlb directly in the kvm_zap_gfn_range() KVM/MMU: Flush tlb directly in kvm_set_pte_rmapp() KVM/MMU: Move tlb flush in kvm_set_pte_rmapp() to kvm_mmu_notifier_change_pte() KVM: Make kvm_set_spte_hva() return int KVM: Replace old tlb flush function with new one to flush a specified range. KVM/MMU: Add tlb flush with range helper function KVM/VMX: Add hv tlb range flush support x86/hyper-v: Add HvFlushGuestAddressList hypercall support KVM: Add tlb_remote_flush_with_range callback in kvm_x86_ops KVM: x86: Disable Intel PT when VMXON in L1 guest KVM: x86: Set intercept for Intel PT MSRs read/write KVM: x86: Implement Intel PT MSRs read/write emulation ...
Diffstat (limited to 'drivers/hv')
-rw-r--r--drivers/hv/hv.c2
-rw-r--r--drivers/hv/hyperv_vmbus.h68
2 files changed, 1 insertions, 69 deletions
diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
index 332d7c34be5c..11273cd384d6 100644
--- a/drivers/hv/hv.c
+++ b/drivers/hv/hv.c
@@ -143,7 +143,7 @@ static int hv_ce_shutdown(struct clock_event_device *evt)
143 143
144static int hv_ce_set_oneshot(struct clock_event_device *evt) 144static int hv_ce_set_oneshot(struct clock_event_device *evt)
145{ 145{
146 union hv_timer_config timer_cfg; 146 union hv_stimer_config timer_cfg;
147 147
148 timer_cfg.as_uint64 = 0; 148 timer_cfg.as_uint64 = 0;
149 timer_cfg.enable = 1; 149 timer_cfg.enable = 1;
diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
index 87d3d7da78f8..ea201034b248 100644
--- a/drivers/hv/hyperv_vmbus.h
+++ b/drivers/hv/hyperv_vmbus.h
@@ -44,74 +44,6 @@
44 */ 44 */
45#define HV_UTIL_NEGO_TIMEOUT 55 45#define HV_UTIL_NEGO_TIMEOUT 55
46 46
47/* Define synthetic interrupt controller flag constants. */
48#define HV_EVENT_FLAGS_COUNT (256 * 8)
49#define HV_EVENT_FLAGS_LONG_COUNT (256 / sizeof(unsigned long))
50
51/*
52 * Timer configuration register.
53 */
54union hv_timer_config {
55 u64 as_uint64;
56 struct {
57 u64 enable:1;
58 u64 periodic:1;
59 u64 lazy:1;
60 u64 auto_enable:1;
61 u64 apic_vector:8;
62 u64 direct_mode:1;
63 u64 reserved_z0:3;
64 u64 sintx:4;
65 u64 reserved_z1:44;
66 };
67};
68
69
70/* Define the synthetic interrupt controller event flags format. */
71union hv_synic_event_flags {
72 unsigned long flags[HV_EVENT_FLAGS_LONG_COUNT];
73};
74
75/* Define SynIC control register. */
76union hv_synic_scontrol {
77 u64 as_uint64;
78 struct {
79 u64 enable:1;
80 u64 reserved:63;
81 };
82};
83
84/* Define synthetic interrupt source. */
85union hv_synic_sint {
86 u64 as_uint64;
87 struct {
88 u64 vector:8;
89 u64 reserved1:8;
90 u64 masked:1;
91 u64 auto_eoi:1;
92 u64 reserved2:46;
93 };
94};
95
96/* Define the format of the SIMP register */
97union hv_synic_simp {
98 u64 as_uint64;
99 struct {
100 u64 simp_enabled:1;
101 u64 preserved:11;
102 u64 base_simp_gpa:52;
103 };
104};
105
106/* Define the format of the SIEFP register */
107union hv_synic_siefp {
108 u64 as_uint64;
109 struct {
110 u64 siefp_enabled:1;
111 u64 preserved:11;
112 u64 base_siefp_gpa:52;
113 };
114};
115 47
116/* Definitions for the monitored notification facility */ 48/* Definitions for the monitored notification facility */
117union hv_monitor_trigger_group { 49union hv_monitor_trigger_group {