]> git.proxmox.com Git - pve-kernel.git/commitdiff
update submodule and patches to 6.1.14
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 27 Feb 2023 17:09:00 +0000 (18:09 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Mon, 27 Feb 2023 17:09:00 +0000 (18:09 +0100)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
patches/kernel/0006-net-core-downgrade-unregister_netdevice-refcount-lea.patch
patches/kernel/0009-KVM-x86-emulator-smm-add-structs-for-KVM-s-smram-lay.patch
patches/kernel/0010-KVM-x86-emulator-smm-use-smram-structs-in-the-common.patch
patches/kernel/0011-KVM-x86-emulator-smm-use-smram-struct-for-32-bit-smr.patch
patches/kernel/0012-KVM-x86-emulator-smm-use-smram-struct-for-64-bit-smr.patch
patches/kernel/0013-KVM-x86-SVM-use-smram-structs.patch
patches/kernel/0014-KVM-x86-SVM-don-t-save-SVM-state-to-SMRAM-when-VM-is.patch
patches/kernel/0015-KVM-x86-emulator-smm-preserve-interrupt-shadow-in-SM.patch
submodules/ubuntu-kernel

index 1cb3f9a6164f1b74a493c1f5e7a5b82b59dfac04..d30c82a9b286aa49ba6fa5768bcb9c834054cf49 100644 (file)
@@ -14,7 +14,7 @@ Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/net/core/dev.c b/net/core/dev.c
-index 70e06853ba25..81190dfbfb3f 100644
+index 7a2a4650a898..ee1ce573a63f 100644
 --- a/net/core/dev.c
 +++ b/net/core/dev.c
 @@ -10273,7 +10273,7 @@ static struct net_device *netdev_wait_allrefs_any(struct list_head *list)
index 221b508d5ccb5277adca34f41eefb43aca211baf..4f40876c1af4d6e9022e4c4e74ce7d2d7601a622 100644 (file)
@@ -271,14 +271,14 @@ index 89246446d6aa..dd0ae61e44a1 100644
  #if defined(CONFIG_X86_32)
  #define X86EMUL_MODE_HOST X86EMUL_MODE_PROT32
 diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index acca85b10545..20aec64e3521 100644
+index 393b1040f96e..8bdcba503f35 100644
 --- a/arch/x86/kvm/x86.c
 +++ b/arch/x86/kvm/x86.c
-@@ -13730,6 +13730,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_vmgexit_msr_protocol_exit);
+@@ -13751,6 +13751,7 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(kvm_vmgexit_msr_protocol_exit);
  static int __init kvm_x86_init(void)
  {
        kvm_mmu_x86_module_init();
 +      kvm_emulator_init();
+       mitigate_smt_rsb &= boot_cpu_has_bug(X86_BUG_SMT_RSB) && cpu_smt_possible();
        return 0;
  }
- module_init(kvm_x86_init);
index 768690f1b233ecce76de51e072adfcab60f4ed5d..8598f06284f4dbf1185f8f39dfe8af071540f0fa 100644 (file)
@@ -109,10 +109,10 @@ index dd0ae61e44a1..76c0b8e7890b 100644
        int (*set_xcr)(struct x86_emulate_ctxt *ctxt, u32 index, u64 xcr);
  };
 diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
-index ce362e88a567..45c4def86cd3 100644
+index 0434bb7b456b..feb48828124e 100644
 --- a/arch/x86/kvm/svm/svm.c
 +++ b/arch/x86/kvm/svm/svm.c
-@@ -4385,12 +4385,14 @@ static int svm_smi_allowed(struct kvm_vcpu *vcpu, bool for_injection)
+@@ -4391,12 +4391,14 @@ static int svm_smi_allowed(struct kvm_vcpu *vcpu, bool for_injection)
        return 1;
  }
  
@@ -128,7 +128,7 @@ index ce362e88a567..45c4def86cd3 100644
        if (!is_guest_mode(vcpu))
                return 0;
  
-@@ -4432,7 +4434,7 @@ static int svm_enter_smm(struct kvm_vcpu *vcpu, char *smstate)
+@@ -4438,7 +4440,7 @@ static int svm_enter_smm(struct kvm_vcpu *vcpu, char *smstate)
        return 0;
  }
  
@@ -137,7 +137,7 @@ index ce362e88a567..45c4def86cd3 100644
  {
        struct vcpu_svm *svm = to_svm(vcpu);
        struct kvm_host_map map, map_save;
-@@ -4440,6 +4442,8 @@ static int svm_leave_smm(struct kvm_vcpu *vcpu, const char *smstate)
+@@ -4446,6 +4448,8 @@ static int svm_leave_smm(struct kvm_vcpu *vcpu, const char *smstate)
        struct vmcb *vmcb12;
        int ret;
  
@@ -147,10 +147,10 @@ index ce362e88a567..45c4def86cd3 100644
                return 0;
  
 diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
-index 4ae248e87f5e..a850ea04514e 100644
+index 95ed874fbbcc..d12f341df52e 100644
 --- a/arch/x86/kvm/vmx/vmx.c
 +++ b/arch/x86/kvm/vmx/vmx.c
-@@ -7911,7 +7911,7 @@ static int vmx_smi_allowed(struct kvm_vcpu *vcpu, bool for_injection)
+@@ -7913,7 +7913,7 @@ static int vmx_smi_allowed(struct kvm_vcpu *vcpu, bool for_injection)
        return !is_smm(vcpu);
  }
  
@@ -159,7 +159,7 @@ index 4ae248e87f5e..a850ea04514e 100644
  {
        struct vcpu_vmx *vmx = to_vmx(vcpu);
  
-@@ -7932,7 +7932,7 @@ static int vmx_enter_smm(struct kvm_vcpu *vcpu, char *smstate)
+@@ -7934,7 +7934,7 @@ static int vmx_enter_smm(struct kvm_vcpu *vcpu, char *smstate)
        return 0;
  }
  
@@ -169,10 +169,10 @@ index 4ae248e87f5e..a850ea04514e 100644
        struct vcpu_vmx *vmx = to_vmx(vcpu);
        int ret;
 diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index 20aec64e3521..94c29391b065 100644
+index 8bdcba503f35..928b3c21b4cb 100644
 --- a/arch/x86/kvm/x86.c
 +++ b/arch/x86/kvm/x86.c
-@@ -8186,9 +8186,9 @@ static void emulator_exiting_smm(struct x86_emulate_ctxt *ctxt)
+@@ -8205,9 +8205,9 @@ static void emulator_exiting_smm(struct x86_emulate_ctxt *ctxt)
  }
  
  static int emulator_leave_smm(struct x86_emulate_ctxt *ctxt,
@@ -184,7 +184,7 @@ index 20aec64e3521..94c29391b065 100644
  }
  
  static void emulator_triple_fault(struct x86_emulate_ctxt *ctxt)
-@@ -10246,25 +10246,25 @@ static void enter_smm(struct kvm_vcpu *vcpu)
+@@ -10267,25 +10267,25 @@ static void enter_smm(struct kvm_vcpu *vcpu)
        struct kvm_segment cs, ds;
        struct desc_ptr dt;
        unsigned long cr0;
index 31847cf9a67f63a1c66507ffa0d3ef35c2ae8504..6d2c715f42726f6543bd99d149458f79e62a6313 100644 (file)
@@ -149,10 +149,10 @@ index 7294dffa794a..65d82292ccec 100644
        if (ret != X86EMUL_CONTINUE)
                goto emulate_shutdown;
 diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index 94c29391b065..579a1cb6a7c8 100644
+index 928b3c21b4cb..48a15a71c543 100644
 --- a/arch/x86/kvm/x86.c
 +++ b/arch/x86/kvm/x86.c
-@@ -10100,22 +10100,18 @@ static u32 enter_smm_get_segment_flags(struct kvm_segment *seg)
+@@ -10121,22 +10121,18 @@ static u32 enter_smm_get_segment_flags(struct kvm_segment *seg)
        return flags;
  }
  
@@ -183,7 +183,7 @@ index 94c29391b065..579a1cb6a7c8 100644
  }
  
  #ifdef CONFIG_X86_64
-@@ -10136,54 +10132,47 @@ static void enter_smm_save_seg_64(struct kvm_vcpu *vcpu, char *buf, int n)
+@@ -10157,54 +10153,47 @@ static void enter_smm_save_seg_64(struct kvm_vcpu *vcpu, char *buf, int n)
  }
  #endif
  
@@ -261,7 +261,7 @@ index 94c29391b065..579a1cb6a7c8 100644
  }
  
  #ifdef CONFIG_X86_64
-@@ -10254,7 +10243,7 @@ static void enter_smm(struct kvm_vcpu *vcpu)
+@@ -10275,7 +10264,7 @@ static void enter_smm(struct kvm_vcpu *vcpu)
                enter_smm_save_state_64(vcpu, (char *)&smram);
        else
  #endif
index ee7b219c3b96772e35e43f2e33de34e541f3c5c9..c5c10ef0a861b109104583bb7475a0701f013a19 100644 (file)
@@ -158,10 +158,10 @@ index 65d82292ccec..03f9e5aa036e 100644
  #endif
                ret = rsm_load_state_32(ctxt, &smram.smram32);
 diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index 579a1cb6a7c8..7a4d86f9bdcd 100644
+index 48a15a71c543..f5d3c0ff083d 100644
 --- a/arch/x86/kvm/x86.c
 +++ b/arch/x86/kvm/x86.c
-@@ -10115,20 +10115,17 @@ static void enter_smm_save_seg_32(struct kvm_vcpu *vcpu,
+@@ -10136,20 +10136,17 @@ static void enter_smm_save_seg_32(struct kvm_vcpu *vcpu,
  }
  
  #ifdef CONFIG_X86_64
@@ -189,7 +189,7 @@ index 579a1cb6a7c8..7a4d86f9bdcd 100644
  }
  #endif
  
-@@ -10176,57 +10173,51 @@ static void enter_smm_save_state_32(struct kvm_vcpu *vcpu, struct kvm_smram_stat
+@@ -10197,57 +10194,51 @@ static void enter_smm_save_state_32(struct kvm_vcpu *vcpu, struct kvm_smram_stat
  }
  
  #ifdef CONFIG_X86_64
@@ -272,7 +272,7 @@ index 579a1cb6a7c8..7a4d86f9bdcd 100644
  }
  #endif
  
-@@ -10240,7 +10231,7 @@ static void enter_smm(struct kvm_vcpu *vcpu)
+@@ -10261,7 +10252,7 @@ static void enter_smm(struct kvm_vcpu *vcpu)
        memset(smram.bytes, 0, sizeof(smram.bytes));
  #ifdef CONFIG_X86_64
        if (guest_cpuid_has(vcpu, X86_FEATURE_LM))
index ac298b5febe659fa6c4b89315e31f67ac1a5fb4c..5ae6356bf107ddfcfe1fd55e917f1e18a8936b7e 100644 (file)
@@ -38,10 +38,10 @@ index 6885f3839e25..f5b82b6f4f84 100644
  
  int memslot_rmap_alloc(struct kvm_memory_slot *slot, unsigned long npages);
 diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
-index 45c4def86cd3..bfacbef667d7 100644
+index feb48828124e..023b6507a539 100644
 --- a/arch/x86/kvm/svm/svm.c
 +++ b/arch/x86/kvm/svm/svm.c
-@@ -4391,15 +4391,11 @@ static int svm_enter_smm(struct kvm_vcpu *vcpu, union kvm_smram *smram)
+@@ -4397,15 +4397,11 @@ static int svm_enter_smm(struct kvm_vcpu *vcpu, union kvm_smram *smram)
        struct kvm_host_map map_save;
        int ret;
  
@@ -59,7 +59,7 @@ index 45c4def86cd3..bfacbef667d7 100644
  
        svm->vmcb->save.rax = vcpu->arch.regs[VCPU_REGS_RAX];
        svm->vmcb->save.rsp = vcpu->arch.regs[VCPU_REGS_RSP];
-@@ -4438,28 +4434,23 @@ static int svm_leave_smm(struct kvm_vcpu *vcpu, const union kvm_smram *smram)
+@@ -4444,28 +4440,23 @@ static int svm_leave_smm(struct kvm_vcpu *vcpu, const union kvm_smram *smram)
  {
        struct vcpu_svm *svm = to_svm(vcpu);
        struct kvm_host_map map, map_save;
@@ -91,7 +91,7 @@ index 45c4def86cd3..bfacbef667d7 100644
                return 1;
  
        ret = 1;
-@@ -4485,7 +4476,7 @@ static int svm_leave_smm(struct kvm_vcpu *vcpu, const union kvm_smram *smram)
+@@ -4491,7 +4482,7 @@ static int svm_leave_smm(struct kvm_vcpu *vcpu, const union kvm_smram *smram)
        vmcb12 = map.hva;
        nested_copy_vmcb_control_to_cache(svm, &vmcb12->control);
        nested_copy_vmcb_save_to_cache(svm, &vmcb12->save);
index efbeab132cd8d973e1b50ea4574cfc054100b7eb..7dd764c5e052b953ca570d0194c87d18bb6de19f 100644 (file)
@@ -23,10 +23,10 @@ Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
  1 file changed, 9 insertions(+)
 
 diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
-index bfacbef667d7..6b02f99fe70c 100644
+index 023b6507a539..a7acbe8246b6 100644
 --- a/arch/x86/kvm/svm/svm.c
 +++ b/arch/x86/kvm/svm/svm.c
-@@ -4394,6 +4394,15 @@ static int svm_enter_smm(struct kvm_vcpu *vcpu, union kvm_smram *smram)
+@@ -4400,6 +4400,15 @@ static int svm_enter_smm(struct kvm_vcpu *vcpu, union kvm_smram *smram)
        if (!is_guest_mode(vcpu))
                return 0;
  
index a5e31016be4aa30eaf805ac60f494931fcbf2d8f..1f195b1a95fc10d007b14e0a43b759839401e1d9 100644 (file)
@@ -132,10 +132,10 @@ index 76c0b8e7890b..a7313add0f2a 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 7a4d86f9bdcd..609829ec1d13 100644
+index f5d3c0ff083d..e4573ac6ee94 100644
 --- a/arch/x86/kvm/x86.c
 +++ b/arch/x86/kvm/x86.c
-@@ -8173,6 +8173,11 @@ static void emulator_set_nmi_mask(struct x86_emulate_ctxt *ctxt, bool masked)
+@@ -8192,6 +8192,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);
  }
  
@@ -147,7 +147,7 @@ index 7a4d86f9bdcd..609829ec1d13 100644
  static unsigned emulator_get_hflags(struct x86_emulate_ctxt *ctxt)
  {
        return emul_to_vcpu(ctxt)->arch.hflags;
-@@ -8253,6 +8258,7 @@ static const struct x86_emulate_ops emulate_ops = {
+@@ -8272,6 +8277,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,
@@ -155,7 +155,7 @@ index 7a4d86f9bdcd..609829ec1d13 100644
        .get_hflags          = emulator_get_hflags,
        .exiting_smm         = emulator_exiting_smm,
        .leave_smm           = emulator_leave_smm,
-@@ -10170,6 +10176,8 @@ static void enter_smm_save_state_32(struct kvm_vcpu *vcpu, struct kvm_smram_stat
+@@ -10191,6 +10197,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;
@@ -164,7 +164,7 @@ index 7a4d86f9bdcd..609829ec1d13 100644
  }
  
  #ifdef CONFIG_X86_64
-@@ -10218,6 +10226,8 @@ static void enter_smm_save_state_64(struct kvm_vcpu *vcpu, struct kvm_smram_stat
+@@ -10239,6 +10247,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);
@@ -173,7 +173,7 @@ index 7a4d86f9bdcd..609829ec1d13 100644
  }
  #endif
  
-@@ -10254,6 +10264,8 @@ static void enter_smm(struct kvm_vcpu *vcpu)
+@@ -10275,6 +10285,8 @@ static void enter_smm(struct kvm_vcpu *vcpu)
        kvm_set_rflags(vcpu, X86_EFLAGS_FIXED);
        kvm_rip_write(vcpu, 0x8000);
  
index 6f988794b04904ea15e156bfe766e30280553b0e..23e615f72113cf3a56cd4083408b0b3cf0548206 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 6f988794b04904ea15e156bfe766e30280553b0e
+Subproject commit 23e615f72113cf3a56cd4083408b0b3cf0548206