From 6ad155377dfd50c63669037dbf565a3932ecc8bb Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Wed, 5 Feb 2020 11:47:41 +0100 Subject: [PATCH] rebase patches on top of Ubuntu-5.3.0-40.32 (generated with debian/scripts/import-upstream-tag) Signed-off-by: Thomas Lamprecht --- ...ides-for-missing-ACS-capabilities-4..patch | 8 +- ...nable-nested-virtualization-by-defau.patch | 2 +- ...D-poll-detect-triggering-a-new-dete.patch} | 2 +- ...w-Reserved-types-to-be-overwritten-i.patch | 86 ------------------- ...l-not-to-clear-KVM_VCPU_FLUSH_TLB-b.patch} | 4 +- ...8-x86-kvm-Introduce-kvm_-un-map_gfn.patch} | 0 ...86-kvm-Cache-gfn-to-pfn-translation.patch} | 6 +- ...-KVM_VCPU_FLUSH_TLB-flag-is-not-mis.patch} | 6 +- ...lean-up-host-s-steal-time-structure.patch} | 10 +-- 9 files changed, 19 insertions(+), 105 deletions(-) rename patches/kernel/{0007-drm-i915-Avoid-HPD-poll-detect-triggering-a-new-dete.patch => 0006-drm-i915-Avoid-HPD-poll-detect-triggering-a-new-dete.patch} (98%) delete mode 100644 patches/kernel/0006-x86-MCE-AMD-Allow-Reserved-types-to-be-overwritten-i.patch rename patches/kernel/{0008-x86-kvm-Be-careful-not-to-clear-KVM_VCPU_FLUSH_TLB-b.patch => 0007-x86-kvm-Be-careful-not-to-clear-KVM_VCPU_FLUSH_TLB-b.patch} (91%) rename patches/kernel/{0009-x86-kvm-Introduce-kvm_-un-map_gfn.patch => 0008-x86-kvm-Introduce-kvm_-un-map_gfn.patch} (100%) rename patches/kernel/{0010-x86-kvm-Cache-gfn-to-pfn-translation.patch => 0009-x86-kvm-Cache-gfn-to-pfn-translation.patch} (98%) rename patches/kernel/{0011-x86-KVM-Make-sure-KVM_VCPU_FLUSH_TLB-flag-is-not-mis.patch => 0010-x86-KVM-Make-sure-KVM_VCPU_FLUSH_TLB-flag-is-not-mis.patch} (96%) rename patches/kernel/{0012-x86-KVM-Clean-up-host-s-steal-time-structure.patch => 0011-x86-KVM-Clean-up-host-s-steal-time-structure.patch} (89%) diff --git a/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch b/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch index a6c9e59..4509a30 100644 --- a/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch +++ b/patches/kernel/0003-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch @@ -55,10 +55,10 @@ Signed-off-by: Thomas Lamprecht 2 files changed, 111 insertions(+) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index 76e82a38ba09..0c9417dab9d9 100644 +index a0e45b4c7a08..d22b0fac61c0 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -3389,6 +3389,15 @@ +@@ -3395,6 +3395,15 @@ Also, it enforces the PCI Local Bus spec rule that those bits should be 0 in system reset events (useful for kexec/kdump cases). @@ -75,7 +75,7 @@ index 76e82a38ba09..0c9417dab9d9 100644 Safety option to keep boot IRQs enabled. This should never be necessary. diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c -index 4558d1192817..22104194fc8d 100644 +index 66cd9678c672..7f589736a49e 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -193,6 +193,106 @@ static int __init pci_apply_final_quirks(void) @@ -185,7 +185,7 @@ index 4558d1192817..22104194fc8d 100644 /* * Decoding should be disabled for a PCI device during BAR sizing to avoid * conflict. But doing so may cause problems on host bridge and perhaps other -@@ -4567,6 +4667,8 @@ static const struct pci_dev_acs_enabled { +@@ -4573,6 +4673,8 @@ static const struct pci_dev_acs_enabled { { PCI_VENDOR_ID_CAVIUM, PCI_ANY_ID, pci_quirk_cavium_acs }, /* APM X-Gene */ { PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs }, diff --git a/patches/kernel/0005-Revert-KVM-VMX-enable-nested-virtualization-by-defau.patch b/patches/kernel/0005-Revert-KVM-VMX-enable-nested-virtualization-by-defau.patch index e853f23..3fc2a45 100644 --- a/patches/kernel/0005-Revert-KVM-VMX-enable-nested-virtualization-by-defau.patch +++ b/patches/kernel/0005-Revert-KVM-VMX-enable-nested-virtualization-by-defau.patch @@ -18,7 +18,7 @@ Signed-off-by: Thomas Lamprecht 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c -index 2a0e281542cc..257896531139 100644 +index 9e4b0036141f..70a2c4c27bed 100644 --- a/arch/x86/kvm/vmx/vmx.c +++ b/arch/x86/kvm/vmx/vmx.c @@ -103,7 +103,7 @@ module_param(enable_apicv, bool, S_IRUGO); diff --git a/patches/kernel/0007-drm-i915-Avoid-HPD-poll-detect-triggering-a-new-dete.patch b/patches/kernel/0006-drm-i915-Avoid-HPD-poll-detect-triggering-a-new-dete.patch similarity index 98% rename from patches/kernel/0007-drm-i915-Avoid-HPD-poll-detect-triggering-a-new-dete.patch rename to patches/kernel/0006-drm-i915-Avoid-HPD-poll-detect-triggering-a-new-dete.patch index bd46161..f0ef5f5 100644 --- a/patches/kernel/0007-drm-i915-Avoid-HPD-poll-detect-triggering-a-new-dete.patch +++ b/patches/kernel/0006-drm-i915-Avoid-HPD-poll-detect-triggering-a-new-dete.patch @@ -60,7 +60,7 @@ index 3fcf2f84bcce..da1d6be46a0c 100644 } diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c -index 4b4d516b15e0..106b666a2cc3 100644 +index 305abddc274a..dbdd46ba9bfe 100644 --- a/drivers/gpu/drm/i915/display/intel_dp.c +++ b/drivers/gpu/drm/i915/display/intel_dp.c @@ -5649,6 +5649,12 @@ intel_dp_detect(struct drm_connector *connector, diff --git a/patches/kernel/0006-x86-MCE-AMD-Allow-Reserved-types-to-be-overwritten-i.patch b/patches/kernel/0006-x86-MCE-AMD-Allow-Reserved-types-to-be-overwritten-i.patch deleted file mode 100644 index 874c8ee..0000000 --- a/patches/kernel/0006-x86-MCE-AMD-Allow-Reserved-types-to-be-overwritten-i.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Yazen Ghannam -Date: Thu, 21 Nov 2019 08:15:08 -0600 -Subject: [PATCH] x86/MCE/AMD: Allow Reserved types to be overwritten in - smca_banks[] - -Each logical CPU in Scalable MCA systems controls a unique set of MCA -banks in the system. These banks are not shared between CPUs. The bank -types and ordering will be the same across CPUs on currently available -systems. - -However, some CPUs may see a bank as Reserved/Read-as-Zero (RAZ) while -other CPUs do not. In this case, the bank seen as Reserved on one CPU is -assumed to be the same type as the bank seen as a known type on another -CPU. - -In general, this occurs when the hardware represented by the MCA bank -is disabled, e.g. disabled memory controllers on certain models, etc. -The MCA bank is disabled in the hardware, so there is no possibility of -getting an MCA/MCE from it even if it is assumed to have a known type. - -For example: - -Full system: - Bank | Type seen on CPU0 | Type seen on CPU1 - ------------------------------------------------ - 0 | LS | LS - 1 | UMC | UMC - 2 | CS | CS - -System with hardware disabled: - Bank | Type seen on CPU0 | Type seen on CPU1 - ------------------------------------------------ - 0 | LS | LS - 1 | UMC | RAZ - 2 | CS | CS - -For this reason, there is a single, global struct smca_banks[] that is -initialized at boot time. This array is initialized on each CPU as it -comes online. However, the array will not be updated if an entry already -exists. - -This works as expected when the first CPU (usually CPU0) has all -possible MCA banks enabled. But if the first CPU has a subset, then it -will save a "Reserved" type in smca_banks[]. Successive CPUs will then -not be able to update smca_banks[] even if they encounter a known bank -type. - -This may result in unexpected behavior. Depending on the system -configuration, a user may observe issues enumerating the MCA -thresholding sysfs interface. The issues may be as trivial as sysfs -entries not being available, or as severe as system hangs. - -For example: - - Bank | Type seen on CPU0 | Type seen on CPU1 - ------------------------------------------------ - 0 | LS | LS - 1 | RAZ | UMC - 2 | CS | CS - -Extend the smca_banks[] entry check to return if the entry is a -non-reserved type. Otherwise, continue so that CPUs that encounter a -known bank type can update smca_banks[]. - -Fixes: 68627a697c19 ("x86/mce/AMD, EDAC/mce_amd: Enumerate Reserved SMCA bank type") -Signed-off-by: Yazen Ghannam -Signed-off-by: Borislav Petkov -Signed-off-by: Thomas Lamprecht ---- - arch/x86/kernel/cpu/mce/amd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/x86/kernel/cpu/mce/amd.c b/arch/x86/kernel/cpu/mce/amd.c -index 6ea7fdc82f3c..08e09c8c269f 100644 ---- a/arch/x86/kernel/cpu/mce/amd.c -+++ b/arch/x86/kernel/cpu/mce/amd.c -@@ -266,7 +266,7 @@ static void smca_configure(unsigned int bank, unsigned int cpu) - smca_set_misc_banks_map(bank, cpu); - - /* Return early if this bank was already initialized. */ -- if (smca_banks[bank].hwid) -+ if (smca_banks[bank].hwid && smca_banks[bank].hwid->hwid_mcatype != 0) - return; - - if (rdmsr_safe_on_cpu(cpu, MSR_AMD64_SMCA_MCx_IPID(bank), &low, &high)) { diff --git a/patches/kernel/0008-x86-kvm-Be-careful-not-to-clear-KVM_VCPU_FLUSH_TLB-b.patch b/patches/kernel/0007-x86-kvm-Be-careful-not-to-clear-KVM_VCPU_FLUSH_TLB-b.patch similarity index 91% rename from patches/kernel/0008-x86-kvm-Be-careful-not-to-clear-KVM_VCPU_FLUSH_TLB-b.patch rename to patches/kernel/0007-x86-kvm-Be-careful-not-to-clear-KVM_VCPU_FLUSH_TLB-b.patch index a17a5b5..231e419 100644 --- a/patches/kernel/0008-x86-kvm-Be-careful-not-to-clear-KVM_VCPU_FLUSH_TLB-b.patch +++ b/patches/kernel/0007-x86-kvm-Be-careful-not-to-clear-KVM_VCPU_FLUSH_TLB-b.patch @@ -23,10 +23,10 @@ Signed-off-by: Thomas Lamprecht 1 file changed, 3 insertions(+) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c -index 778b3a899769..92d8e4ebba16 100644 +index 9c45e6ca30fd..80e860bd39d5 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c -@@ -3393,6 +3393,9 @@ static void kvm_steal_time_set_preempted(struct kvm_vcpu *vcpu) +@@ -3399,6 +3399,9 @@ static void kvm_steal_time_set_preempted(struct kvm_vcpu *vcpu) if (!(vcpu->arch.st.msr_val & KVM_MSR_ENABLED)) return; diff --git a/patches/kernel/0009-x86-kvm-Introduce-kvm_-un-map_gfn.patch b/patches/kernel/0008-x86-kvm-Introduce-kvm_-un-map_gfn.patch similarity index 100% rename from patches/kernel/0009-x86-kvm-Introduce-kvm_-un-map_gfn.patch rename to patches/kernel/0008-x86-kvm-Introduce-kvm_-un-map_gfn.patch diff --git a/patches/kernel/0010-x86-kvm-Cache-gfn-to-pfn-translation.patch b/patches/kernel/0009-x86-kvm-Cache-gfn-to-pfn-translation.patch similarity index 98% rename from patches/kernel/0010-x86-kvm-Cache-gfn-to-pfn-translation.patch rename to patches/kernel/0009-x86-kvm-Cache-gfn-to-pfn-translation.patch index b947a5e..650faa4 100644 --- a/patches/kernel/0010-x86-kvm-Cache-gfn-to-pfn-translation.patch +++ b/patches/kernel/0009-x86-kvm-Cache-gfn-to-pfn-translation.patch @@ -39,10 +39,10 @@ index f68e174f452f..7c06343614a4 100644 u64 tsc_offset; diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c -index 92d8e4ebba16..41fee3d359ab 100644 +index 80e860bd39d5..cb18560b07bc 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c -@@ -8936,6 +8936,9 @@ static void fx_init(struct kvm_vcpu *vcpu) +@@ -8945,6 +8945,9 @@ static void fx_init(struct kvm_vcpu *vcpu) void kvm_arch_vcpu_free(struct kvm_vcpu *vcpu) { void *wbinvd_dirty_mask = vcpu->arch.wbinvd_dirty_mask; @@ -52,7 +52,7 @@ index 92d8e4ebba16..41fee3d359ab 100644 kvmclock_reset(vcpu); -@@ -9602,11 +9605,18 @@ int kvm_arch_create_memslot(struct kvm *kvm, struct kvm_memory_slot *slot, +@@ -9611,11 +9614,18 @@ int kvm_arch_create_memslot(struct kvm *kvm, struct kvm_memory_slot *slot, void kvm_arch_memslots_updated(struct kvm *kvm, u64 gen) { diff --git a/patches/kernel/0011-x86-KVM-Make-sure-KVM_VCPU_FLUSH_TLB-flag-is-not-mis.patch b/patches/kernel/0010-x86-KVM-Make-sure-KVM_VCPU_FLUSH_TLB-flag-is-not-mis.patch similarity index 96% rename from patches/kernel/0011-x86-KVM-Make-sure-KVM_VCPU_FLUSH_TLB-flag-is-not-mis.patch rename to patches/kernel/0010-x86-KVM-Make-sure-KVM_VCPU_FLUSH_TLB-flag-is-not-mis.patch index 62f967a..506d50d 100644 --- a/patches/kernel/0011-x86-KVM-Make-sure-KVM_VCPU_FLUSH_TLB-flag-is-not-mis.patch +++ b/patches/kernel/0010-x86-KVM-Make-sure-KVM_VCPU_FLUSH_TLB-flag-is-not-mis.patch @@ -28,10 +28,10 @@ Signed-off-by: Thomas Lamprecht 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c -index 41fee3d359ab..431e34965707 100644 +index cb18560b07bc..f63fa5846f08 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c -@@ -2482,43 +2482,45 @@ static void kvm_vcpu_flush_tlb(struct kvm_vcpu *vcpu, bool invalidate_gpa) +@@ -2488,43 +2488,45 @@ static void kvm_vcpu_flush_tlb(struct kvm_vcpu *vcpu, bool invalidate_gpa) static void record_steal_time(struct kvm_vcpu *vcpu) { @@ -92,7 +92,7 @@ index 41fee3d359ab..431e34965707 100644 } int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info) -@@ -3390,18 +3392,25 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu) +@@ -3396,18 +3398,25 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu) static void kvm_steal_time_set_preempted(struct kvm_vcpu *vcpu) { diff --git a/patches/kernel/0012-x86-KVM-Clean-up-host-s-steal-time-structure.patch b/patches/kernel/0011-x86-KVM-Clean-up-host-s-steal-time-structure.patch similarity index 89% rename from patches/kernel/0012-x86-KVM-Clean-up-host-s-steal-time-structure.patch rename to patches/kernel/0011-x86-KVM-Clean-up-host-s-steal-time-structure.patch index 1300b80..e2b537d 100644 --- a/patches/kernel/0012-x86-KVM-Clean-up-host-s-steal-time-structure.patch +++ b/patches/kernel/0011-x86-KVM-Clean-up-host-s-steal-time-structure.patch @@ -38,10 +38,10 @@ index 7c06343614a4..f62f4ff5f4f4 100644 } st; diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c -index 431e34965707..c059728f8a44 100644 +index f63fa5846f08..6ce9ace8a801 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c -@@ -2503,7 +2503,7 @@ static void record_steal_time(struct kvm_vcpu *vcpu) +@@ -2509,7 +2509,7 @@ static void record_steal_time(struct kvm_vcpu *vcpu) if (xchg(&st->preempted, 0) & KVM_VCPU_FLUSH_TLB) kvm_vcpu_flush_tlb(vcpu, false); @@ -50,7 +50,7 @@ index 431e34965707..c059728f8a44 100644 if (st->version & 1) st->version += 1; /* first time write, random junk */ -@@ -2676,11 +2676,6 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info) +@@ -2682,11 +2682,6 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info) if (data & KVM_STEAL_RESERVED_MASK) return 1; @@ -62,7 +62,7 @@ index 431e34965707..c059728f8a44 100644 vcpu->arch.st.msr_val = data; if (!(data & KVM_MSR_ENABLED)) -@@ -3398,7 +3393,7 @@ static void kvm_steal_time_set_preempted(struct kvm_vcpu *vcpu) +@@ -3404,7 +3399,7 @@ static void kvm_steal_time_set_preempted(struct kvm_vcpu *vcpu) if (!(vcpu->arch.st.msr_val & KVM_MSR_ENABLED)) return; @@ -71,7 +71,7 @@ index 431e34965707..c059728f8a44 100644 return; if (kvm_map_gfn(vcpu, vcpu->arch.st.msr_val >> PAGE_SHIFT, &map, -@@ -3408,7 +3403,7 @@ static void kvm_steal_time_set_preempted(struct kvm_vcpu *vcpu) +@@ -3414,7 +3409,7 @@ static void kvm_steal_time_set_preempted(struct kvm_vcpu *vcpu) st = map.hva + offset_in_page(vcpu->arch.st.msr_val & KVM_STEAL_VALID_BITS);