]> git.proxmox.com Git - pve-kernel.git/blobdiff - patches/kernel/0019-KVM-x86-emulator-smm-preserve-interrupt-shadow-in-SM.patch
rebase patches on top of Ubuntu-5.19.0-16.16
[pve-kernel.git] / patches / kernel / 0019-KVM-x86-emulator-smm-preserve-interrupt-shadow-in-SM.patch
index 1ca1174fcd0934360c621e5dd61ddc43677798bc..35416348617322477355651a1bd8cd3a4a135951 100644 (file)
@@ -30,7 +30,7 @@ Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
  3 files changed, 32 insertions(+), 7 deletions(-)
 
 diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
-index 265535d167a5..3fb0518121db 100644
+index 38f25ab83590..97a706032e20 100644
 --- a/arch/x86/kvm/emulate.c
 +++ b/arch/x86/kvm/emulate.c
 @@ -2435,7 +2435,7 @@ static int rsm_load_state_32(struct x86_emulate_ctxt *ctxt,
@@ -128,10 +128,10 @@ index 04ac0cef8b57..d5707b3f254c 100644
        __CHECK_SMRAM64_OFFSET(auto_hlt_restart,        0xFEC9);
        __CHECK_SMRAM64_OFFSET(reserved2,               0xFECA);
 diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index 0cd48992f619..424ea7ce3a96 100644
+index 45d8dad82ba2..1d2b9ef40aa3 100644
 --- a/arch/x86/kvm/x86.c
 +++ b/arch/x86/kvm/x86.c
-@@ -7840,6 +7840,11 @@ static void emulator_set_nmi_mask(struct x86_emulate_ctxt *ctxt, bool masked)
+@@ -7851,6 +7851,11 @@ static void emulator_set_nmi_mask(struct x86_emulate_ctxt *ctxt, bool masked)
        static_call(kvm_x86_set_nmi_mask)(emul_to_vcpu(ctxt), masked);
  }
  
@@ -143,7 +143,7 @@ index 0cd48992f619..424ea7ce3a96 100644
  static unsigned emulator_get_hflags(struct x86_emulate_ctxt *ctxt)
  {
        return emul_to_vcpu(ctxt)->arch.hflags;
-@@ -7911,6 +7916,7 @@ static const struct x86_emulate_ops emulate_ops = {
+@@ -7922,6 +7927,7 @@ static const struct x86_emulate_ops emulate_ops = {
        .guest_has_fxsr      = emulator_guest_has_fxsr,
        .guest_has_rdpid     = emulator_guest_has_rdpid,
        .set_nmi_mask        = emulator_set_nmi_mask,
@@ -151,7 +151,7 @@ index 0cd48992f619..424ea7ce3a96 100644
        .get_hflags          = emulator_get_hflags,
        .exiting_smm         = emulator_exiting_smm,
        .leave_smm           = emulator_leave_smm,
-@@ -9688,6 +9694,8 @@ static void enter_smm_save_state_32(struct kvm_vcpu *vcpu, struct kvm_smram_stat
+@@ -9699,6 +9705,8 @@ static void enter_smm_save_state_32(struct kvm_vcpu *vcpu, struct kvm_smram_stat
        smram->cr4 = kvm_read_cr4(vcpu);
        smram->smm_revision = 0x00020000;
        smram->smbase = vcpu->arch.smbase;
@@ -160,7 +160,7 @@ index 0cd48992f619..424ea7ce3a96 100644
  }
  
  #ifdef CONFIG_X86_64
-@@ -9736,6 +9744,8 @@ static void enter_smm_save_state_64(struct kvm_vcpu *vcpu, struct kvm_smram_stat
+@@ -9747,6 +9755,8 @@ static void enter_smm_save_state_64(struct kvm_vcpu *vcpu, struct kvm_smram_stat
        enter_smm_save_seg_64(vcpu, &smram->ds, VCPU_SREG_DS);
        enter_smm_save_seg_64(vcpu, &smram->fs, VCPU_SREG_FS);
        enter_smm_save_seg_64(vcpu, &smram->gs, VCPU_SREG_GS);
@@ -169,7 +169,7 @@ index 0cd48992f619..424ea7ce3a96 100644
  }
  #endif
  
-@@ -9772,6 +9782,8 @@ static void enter_smm(struct kvm_vcpu *vcpu)
+@@ -9783,6 +9793,8 @@ static void enter_smm(struct kvm_vcpu *vcpu)
        kvm_set_rflags(vcpu, X86_EFLAGS_FIXED);
        kvm_rip_write(vcpu, 0x8000);