@@ -342,7 +342,6 @@ static inline void switch_to_smod(struct kvm_vcpu *vcpu)
342342 swap (pvm -> msr_switch_cr3 , vcpu -> arch .cr3 );
343343
344344 pvm_write_guest_gs_base (pvm , pvm -> msr_kernel_gs_base );
345- kvm_rsp_write (vcpu , pvm -> msr_supervisor_rsp );
346345
347346 pvm -> hw_cs = __USER_CS ;
348347 pvm -> hw_ss = __USER_DS ;
@@ -352,8 +351,6 @@ static inline void switch_to_umod(struct kvm_vcpu *vcpu)
352351{
353352 struct vcpu_pvm * pvm = to_pvm (vcpu );
354353
355- pvm -> msr_supervisor_rsp = kvm_rsp_read (vcpu );
356-
357354 pvm_switch_flags_toggle_mod (pvm );
358355 kvm_mmu_new_pgd (vcpu , pvm -> msr_switch_cr3 );
359356 swap (pvm -> msr_switch_cr3 , vcpu -> arch .cr3 );
@@ -1101,9 +1098,6 @@ static int pvm_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
11011098 case MSR_PVM_VCPU_STRUCT :
11021099 msr_info -> data = pvm -> msr_vcpu_struct ;
11031100 break ;
1104- case MSR_PVM_SUPERVISOR_RSP :
1105- msr_info -> data = pvm -> msr_supervisor_rsp ;
1106- break ;
11071101 case MSR_PVM_EVENT_ENTRY :
11081102 msr_info -> data = pvm -> msr_event_entry ;
11091103 break ;
@@ -1251,9 +1245,6 @@ static int pvm_set_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
12511245 kvm_make_request (KVM_REQ_GPC_REFRESH , vcpu );
12521246 }
12531247 break ;
1254- case MSR_PVM_SUPERVISOR_RSP :
1255- pvm -> msr_supervisor_rsp = msr_info -> data ;
1256- break ;
12571248 case MSR_PVM_EVENT_ENTRY :
12581249 if (is_noncanonical_address (data , vcpu ) ||
12591250 is_noncanonical_address (data + 256 , vcpu ) ||
@@ -1565,7 +1556,6 @@ static int __do_pvm_event(struct kvm_vcpu *vcpu, bool user, int vector,
15651556 bool has_err_code , u64 err_code )
15661557{
15671558 struct vcpu_pvm * pvm = to_pvm (vcpu );
1568- unsigned long rsp = kvm_rsp_read (vcpu );
15691559 unsigned long entry ;
15701560 struct pvm_vcpu_struct * pvcs ;
15711561
@@ -1622,7 +1612,6 @@ static int __do_pvm_event(struct kvm_vcpu *vcpu, bool user, int vector,
16221612
16231613 pvcs -> eflags = kvm_get_rflags (vcpu );
16241614 pvcs -> rip = kvm_rip_read (vcpu );
1625- pvcs -> rsp = rsp ;
16261615 pvcs -> rcx = kvm_rcx_read (vcpu );
16271616 pvcs -> r11 = kvm_r11_read (vcpu );
16281617
@@ -1643,8 +1632,6 @@ static int __do_pvm_event(struct kvm_vcpu *vcpu, bool user, int vector,
16431632
16441633 if (user )
16451634 switch_to_smod (vcpu );
1646- else
1647- kvm_rsp_write (vcpu , rsp & ~15UL );
16481635
16491636 if (vector == PVM_SYSCALL_VECTOR )
16501637 entry = pvm -> msr_lstar ;
@@ -1839,7 +1826,6 @@ static int handle_synthetic_instruction_return(struct kvm_vcpu *vcpu, bool user)
18391826 pvcs -> event_vector = 0 ;
18401827
18411828 kvm_rip_write (vcpu , pvcs -> rip );
1842- kvm_rsp_write (vcpu , pvcs -> rsp );
18431829 kvm_rcx_write (vcpu , pvcs -> rcx );
18441830 kvm_r11_write (vcpu , pvcs -> r11 );
18451831 rflags = pvcs -> eflags ;
@@ -2656,18 +2642,15 @@ static noinstr void pvm_vcpu_run_noinstr(struct kvm_vcpu *vcpu)
26562642 tss_ex -> retu_rip = pvm -> msr_retu_rip_plus2 ;
26572643 tss_ex -> smod_entry = pvm -> msr_lstar ;
26582644 tss_ex -> smod_gsbase = pvm -> msr_kernel_gs_base ;
2659- tss_ex -> smod_rsp = pvm -> msr_supervisor_rsp ;
26602645
26612646 if (unlikely (pvm -> guest_dr7 & DR7_BP_EN_MASK ))
26622647 set_debugreg (pvm_eff_dr7 (vcpu ), 7 );
26632648
26642649 // Call into switcher and enter guest.
26652650 ret_regs = switcher_enter_guest ();
26662651
2667- // Get the resulted mode and PVM MSRs which might be changed
2668- // when direct switching.
2652+ // Get the resulted mode
26692653 pvm -> switch_flags = tss_ex -> switch_flags ;
2670- pvm -> msr_supervisor_rsp = tss_ex -> smod_rsp ;
26712654
26722655 // Get the guest registers from the host sp0 stack.
26732656 save_regs (vcpu , ret_regs );
@@ -2901,7 +2884,6 @@ static void pvm_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event)
29012884 memset (& pvm -> tls_array [0 ], 0 , sizeof (pvm -> tls_array ));
29022885
29032886 pvm -> msr_vcpu_struct = 0 ;
2904- pvm -> msr_supervisor_rsp = 0 ;
29052887 pvm -> msr_event_entry = 0 ;
29062888 pvm -> msr_retu_rip_plus2 = 0 ;
29072889 pvm -> msr_rets_rip_plus2 = 0 ;
0 commit comments