From 2db681b5f19ba0032116559f9e128d9f76b5fbee Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Tue, 3 Oct 2023 07:05:13 +0200 Subject: [PATCH] rebase patches on top of Ubuntu-6.2.0-36.36 (generated with debian/scripts/import-upstream-tag) Signed-off-by: Thomas Lamprecht --- ...-accept-an-alternate-timestamp-strin.patch | 2 +- ...ides-for-missing-ACS-capabilities-4..patch | 4 +- ...-default-dynamic-halt-polling-growth.patch | 2 +- ...sk-out-PKRU-bit-in-xfeatures-if-vCPU.patch | 4 +- ...n-sign-extension-bug-with-mmu_seq-t.patch} | 0 ...t-probe-due-to-duplicate-IDs-for-sin.patch | 76 ---- ...llow-pass-through-on-broken-hardwar.patch} | 0 ...Panic-during-ndo_tx_timeout-callback.patch | 384 ------------------ ...ault-logging-if-fatal-signal-already.patch | 67 --- ...-Fix-TCPv6-GSO-checksum-calculation.patch} | 0 ...rt-XDomain-discovery-handshake-afte.patch} | 0 ...FEATURE_OSXSAVE-feature-after-enabli.patch | 61 --- ...-ring-interrupt-on-Intel-hardware-as.patch | 49 --- ...de-AMD-Load-late-on-both-threads-too.patch | 32 -- 14 files changed, 6 insertions(+), 675 deletions(-) rename patches/kernel/{0012-KVM-x86-mmu-Fix-an-sign-extension-bug-with-mmu_seq-t.patch => 0009-KVM-x86-mmu-Fix-an-sign-extension-bug-with-mmu_seq-t.patch} (100%) delete mode 100644 patches/kernel/0009-nvme-don-t-reject-probe-due-to-duplicate-IDs-for-sin.patch rename patches/kernel/{0013-allow-opt-in-to-allow-pass-through-on-broken-hardwar.patch => 0010-allow-opt-in-to-allow-pass-through-on-broken-hardwar.patch} (100%) delete mode 100644 patches/kernel/0010-igc-Fix-Kernel-Panic-during-ndo_tx_timeout-callback.patch delete mode 100644 patches/kernel/0011-mm-suppress-mm-fault-logging-if-fatal-signal-already.patch rename patches/kernel/{0014-net-thunderbolt-Fix-TCPv6-GSO-checksum-calculation.patch => 0011-net-thunderbolt-Fix-TCPv6-GSO-checksum-calculation.patch} (100%) rename patches/kernel/{0015-thunderbolt-Restart-XDomain-discovery-handshake-afte.patch => 0012-thunderbolt-Restart-XDomain-discovery-handshake-afte.patch} (100%) delete mode 100644 patches/kernel/0016-x86-fpu-Set-X86_FEATURE_OSXSAVE-feature-after-enabli.patch delete mode 100644 patches/kernel/0017-thunderbolt-Mask-ring-interrupt-on-Intel-hardware-as.patch delete mode 100644 patches/kernel/0018-x86-microcode-AMD-Load-late-on-both-threads-too.patch diff --git a/patches/kernel/0001-Make-mkcompile_h-accept-an-alternate-timestamp-strin.patch b/patches/kernel/0001-Make-mkcompile_h-accept-an-alternate-timestamp-strin.patch index afe3c07..1cdc5ee 100644 --- a/patches/kernel/0001-Make-mkcompile_h-accept-an-alternate-timestamp-strin.patch +++ b/patches/kernel/0001-Make-mkcompile_h-accept-an-alternate-timestamp-strin.patch @@ -21,7 +21,7 @@ Signed-off-by: Thomas Lamprecht 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init/Makefile b/init/Makefile -index 26de459006c4..3157d9c79901 100644 +index ec557ada3c12..72095034f338 100644 --- a/init/Makefile +++ b/init/Makefile @@ -29,7 +29,7 @@ preempt-flag-$(CONFIG_PREEMPT_DYNAMIC) := PREEMPT_DYNAMIC diff --git a/patches/kernel/0004-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch b/patches/kernel/0004-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch index 553b16c..72d991a 100644 --- a/patches/kernel/0004-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch +++ b/patches/kernel/0004-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch @@ -75,7 +75,7 @@ index fa73bbcb0c8d..4964bb2e931e 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 e84378684643..0bfa7199c974 100644 +index 592e1c4ae697..aebf6f412203 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c @@ -194,6 +194,106 @@ static int __init pci_apply_final_quirks(void) @@ -185,7 +185,7 @@ index e84378684643..0bfa7199c974 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 -@@ -4972,6 +5072,8 @@ static const struct pci_dev_acs_enabled { +@@ -4974,6 +5074,8 @@ static const struct pci_dev_acs_enabled { { PCI_VENDOR_ID_CAVIUM, 0xA060, pci_quirk_mf_endpoint_acs }, /* APM X-Gene */ { PCI_VENDOR_ID_AMCC, 0xE004, pci_quirk_xgene_acs }, diff --git a/patches/kernel/0005-kvm-disable-default-dynamic-halt-polling-growth.patch b/patches/kernel/0005-kvm-disable-default-dynamic-halt-polling-growth.patch index 8620696..91bf4a2 100644 --- a/patches/kernel/0005-kvm-disable-default-dynamic-halt-polling-growth.patch +++ b/patches/kernel/0005-kvm-disable-default-dynamic-halt-polling-growth.patch @@ -13,7 +13,7 @@ Signed-off-by: Thomas Lamprecht 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c -index ba827a450103..dd2b2b0ce3a5 100644 +index 73fad57408f7..99ae3e468ce6 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -79,7 +79,7 @@ module_param(halt_poll_ns, uint, 0644); diff --git a/patches/kernel/0008-kvm-xsave-set-mask-out-PKRU-bit-in-xfeatures-if-vCPU.patch b/patches/kernel/0008-kvm-xsave-set-mask-out-PKRU-bit-in-xfeatures-if-vCPU.patch index 6b8bafc..d6053be 100644 --- a/patches/kernel/0008-kvm-xsave-set-mask-out-PKRU-bit-in-xfeatures-if-vCPU.patch +++ b/patches/kernel/0008-kvm-xsave-set-mask-out-PKRU-bit-in-xfeatures-if-vCPU.patch @@ -108,10 +108,10 @@ index b1658c0de847..12a02851ff57 100644 int cpuid_query_maxphyaddr(struct kvm_vcpu *vcpu); diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c -index eb905af3ee90..16d7a881cae5 100644 +index ee603f4edce1..ff92ff41d5ce 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c -@@ -5333,6 +5333,19 @@ static int kvm_vcpu_ioctl_x86_set_xsave(struct kvm_vcpu *vcpu, +@@ -5342,6 +5342,19 @@ static int kvm_vcpu_ioctl_x86_set_xsave(struct kvm_vcpu *vcpu, if (fpstate_is_confidential(&vcpu->arch.guest_fpu)) return 0; diff --git a/patches/kernel/0012-KVM-x86-mmu-Fix-an-sign-extension-bug-with-mmu_seq-t.patch b/patches/kernel/0009-KVM-x86-mmu-Fix-an-sign-extension-bug-with-mmu_seq-t.patch similarity index 100% rename from patches/kernel/0012-KVM-x86-mmu-Fix-an-sign-extension-bug-with-mmu_seq-t.patch rename to patches/kernel/0009-KVM-x86-mmu-Fix-an-sign-extension-bug-with-mmu_seq-t.patch diff --git a/patches/kernel/0009-nvme-don-t-reject-probe-due-to-duplicate-IDs-for-sin.patch b/patches/kernel/0009-nvme-don-t-reject-probe-due-to-duplicate-IDs-for-sin.patch deleted file mode 100644 index 890fce5..0000000 --- a/patches/kernel/0009-nvme-don-t-reject-probe-due-to-duplicate-IDs-for-sin.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Christoph Hellwig -Date: Thu, 13 Jul 2023 15:30:42 +0200 -Subject: [PATCH] nvme: don't reject probe due to duplicate IDs for - single-ported PCIe devices - -While duplicate IDs are still very harmful, including the potential to easily -see changing devices in /dev/disk/by-id, it turn out they are extremely -common for cheap end user NVMe devices. - -Relax our check for them for so that it doesn't reject the probe on -single-ported PCIe devices, but prints a big warning instead. In doubt -we'd still like to see quirk entries to disable the potential for -changing supposed stable device identifier links, but this will at least -allow users how have two (or more) of these devices to use them without -having to manually add a new PCI ID entry with the quirk through sysfs or -by patching the kernel. - -Fixes: 2079f41ec6ff ("nvme: check that EUI/GUID/UUID are globally unique") -Cc: stable@vger.kernel.org # 6.0+ -Co-developed-by: Sagi Grimberg -Signed-off-by: Christoph Hellwig -Signed-off-by: Keith Busch -Signed-off-by: Thomas Lamprecht ---- - drivers/nvme/host/core.c | 36 +++++++++++++++++++++++++++++++++--- - 1 file changed, 33 insertions(+), 3 deletions(-) - -diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c -index e2618d2b57bf..56d13d9e08ed 100644 ---- a/drivers/nvme/host/core.c -+++ b/drivers/nvme/host/core.c -@@ -4165,10 +4165,40 @@ static int nvme_init_ns_head(struct nvme_ns *ns, struct nvme_ns_info *info) - - ret = nvme_global_check_duplicate_ids(ctrl->subsys, &info->ids); - if (ret) { -- dev_err(ctrl->device, -- "globally duplicate IDs for nsid %d\n", info->nsid); -+ /* -+ * We've found two different namespaces on two different -+ * subsystems that report the same ID. This is pretty nasty -+ * for anything that actually requires unique device -+ * identification. In the kernel we need this for multipathing, -+ * and in user space the /dev/disk/by-id/ links rely on it. -+ * -+ * If the device also claims to be multi-path capable back off -+ * here now and refuse the probe the second device as this is a -+ * recipe for data corruption. If not this is probably a -+ * cheap consumer device if on the PCIe bus, so let the user -+ * proceed and use the shiny toy, but warn that with changing -+ * probing order (which due to our async probing could just be -+ * device taking longer to startup) the other device could show -+ * up at any time. -+ */ - nvme_print_device_info(ctrl); -- return ret; -+ if ((ns->ctrl->ops->flags & NVME_F_FABRICS) || /* !PCIe */ -+ ((ns->ctrl->subsys->cmic & NVME_CTRL_CMIC_MULTI_CTRL) && -+ info->is_shared)) { -+ dev_err(ctrl->device, -+ "ignoring nsid %d because of duplicate IDs\n", -+ info->nsid); -+ return ret; -+ } -+ -+ dev_err(ctrl->device, -+ "clearing duplicate IDs for nsid %d\n", info->nsid); -+ dev_err(ctrl->device, -+ "use of /dev/disk/by-id/ may cause data corruption\n"); -+ memset(&info->ids.nguid, 0, sizeof(info->ids.nguid)); -+ memset(&info->ids.uuid, 0, sizeof(info->ids.uuid)); -+ memset(&info->ids.eui64, 0, sizeof(info->ids.eui64)); -+ ctrl->quirks |= NVME_QUIRK_BOGUS_NID; - } - - mutex_lock(&ctrl->subsys->lock); diff --git a/patches/kernel/0013-allow-opt-in-to-allow-pass-through-on-broken-hardwar.patch b/patches/kernel/0010-allow-opt-in-to-allow-pass-through-on-broken-hardwar.patch similarity index 100% rename from patches/kernel/0013-allow-opt-in-to-allow-pass-through-on-broken-hardwar.patch rename to patches/kernel/0010-allow-opt-in-to-allow-pass-through-on-broken-hardwar.patch diff --git a/patches/kernel/0010-igc-Fix-Kernel-Panic-during-ndo_tx_timeout-callback.patch b/patches/kernel/0010-igc-Fix-Kernel-Panic-during-ndo_tx_timeout-callback.patch deleted file mode 100644 index 43e2269..0000000 --- a/patches/kernel/0010-igc-Fix-Kernel-Panic-during-ndo_tx_timeout-callback.patch +++ /dev/null @@ -1,384 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Muhammad Husaini Zulkifli -Date: Mon, 24 Jul 2023 09:12:50 -0700 -Subject: [PATCH] igc: Fix Kernel Panic during ndo_tx_timeout callback - -The Xeon validation group has been carrying out some loaded tests -with various HW configurations, and they have seen some transmit -queue time out happening during the test. This will cause the -reset adapter function to be called by igc_tx_timeout(). -Similar race conditions may arise when the interface is being brought -down and up in igc_reinit_locked(), an interrupt being generated, and -igc_clean_tx_irq() being called to complete the TX. - -When the igc_tx_timeout() function is invoked, this patch will turn -off all TX ring HW queues during igc_down() process. TX ring HW queues -will be activated again during the igc_configure_tx_ring() process -when performing the igc_up() procedure later. - -This patch also moved existing igc_disable_tx_ring_hw() to avoid using -forward declaration. - -Kernel trace: -[ 7678.747813] ------------[ cut here ]------------ -[ 7678.757914] NETDEV WATCHDOG: enp1s0 (igc): transmit queue 2 timed out -[ 7678.770117] WARNING: CPU: 0 PID: 13 at net/sched/sch_generic.c:525 dev_watchdog+0x1ae/0x1f0 -[ 7678.784459] Modules linked in: xt_conntrack nft_chain_nat xt_MASQUERADE xt_addrtype nft_compat -nf_tables nfnetlink br_netfilter bridge stp llc overlay dm_mod emrcha(PO) emriio(PO) rktpm(PO) -cegbuf_mod(PO) patch_update(PO) se(PO) sgx_tgts(PO) mktme(PO) keylocker(PO) svtdx(PO) svfs_pci_hotplug(PO) -vtd_mod(PO) davemem(PO) svmabort(PO) svindexio(PO) usbx2(PO) ehci_sched(PO) svheartbeat(PO) ioapic(PO) -sv8259(PO) svintr(PO) lt(PO) pcierootport(PO) enginefw_mod(PO) ata(PO) smbus(PO) spiflash_cdf(PO) arden(PO) -dsa_iax(PO) oobmsm_punit(PO) cpm(PO) svkdb(PO) ebg_pch(PO) pch(PO) sviotargets(PO) svbdf(PO) svmem(PO) -svbios(PO) dram(PO) svtsc(PO) targets(PO) superio(PO) svkernel(PO) cswitch(PO) mcf(PO) pentiumIII_mod(PO) -fs_svfs(PO) mdevdefdb(PO) svfs_os_services(O) ixgbe mdio mdio_devres libphy emeraldrapids_svdefs(PO) -regsupport(O) libnvdimm nls_cp437 snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_intel -snd_intel_dspcfg snd_hda_codec snd_hwdep x86_pkg_temp_thermal snd_hda_core snd_pcm snd_timer isst_if_mbox_pci -[ 7678.784496] input_leds isst_if_mmio sg snd isst_if_common soundcore wmi button sad9(O) drm fuse backlight -configfs efivarfs ip_tables x_tables vmd sdhci led_class rtl8150 r8152 hid_generic pegasus mmc_block usbhid -mmc_core hid megaraid_sas ixgb igb i2c_algo_bit ice i40e hpsa scsi_transport_sas e1000e e1000 e100 ax88179_178a -usbnet xhci_pci sd_mod xhci_hcd t10_pi crc32c_intel crc64_rocksoft igc crc64 crc_t10dif usbcore -crct10dif_generic ptp crct10dif_common usb_common pps_core -[ 7679.200403] RIP: 0010:dev_watchdog+0x1ae/0x1f0 -[ 7679.210201] Code: 28 e9 53 ff ff ff 4c 89 e7 c6 05 06 42 b9 00 01 e8 17 d1 fb ff 44 89 e9 4c -89 e6 48 c7 c7 40 ad fb 81 48 89 c2 e8 52 62 82 ff <0f> 0b e9 72 ff ff ff 65 8b 05 80 7d 7c 7e -89 c0 48 0f a3 05 0a c1 -[ 7679.245438] RSP: 0018:ffa00000001f7d90 EFLAGS: 00010282 -[ 7679.256021] RAX: 0000000000000000 RBX: ff11000109938440 RCX: 0000000000000000 -[ 7679.268710] RDX: ff11000361e26cd8 RSI: ff11000361e1b880 RDI: ff11000361e1b880 -[ 7679.281314] RBP: ffa00000001f7da8 R08: ff1100035f8fffe8 R09: 0000000000027ffb -[ 7679.293840] R10: 0000000000001f0a R11: ff1100035f840000 R12: ff11000109938000 -[ 7679.306276] R13: 0000000000000002 R14: dead000000000122 R15: ffa00000001f7e18 -[ 7679.318648] FS: 0000000000000000(0000) GS:ff11000361e00000(0000) knlGS:0000000000000000 -[ 7679.332064] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 -[ 7679.342757] CR2: 00007ffff7fca168 CR3: 000000013b08a006 CR4: 0000000000471ef8 -[ 7679.354984] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 -[ 7679.367207] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400 -[ 7679.379370] PKRU: 55555554 -[ 7679.386446] Call Trace: -[ 7679.393152] -[ 7679.399363] ? __pfx_dev_watchdog+0x10/0x10 -[ 7679.407870] call_timer_fn+0x31/0x110 -[ 7679.415698] expire_timers+0xb2/0x120 -[ 7679.423403] run_timer_softirq+0x179/0x1e0 -[ 7679.431532] ? __schedule+0x2b1/0x820 -[ 7679.439078] __do_softirq+0xd1/0x295 -[ 7679.446426] ? __pfx_smpboot_thread_fn+0x10/0x10 -[ 7679.454867] run_ksoftirqd+0x22/0x30 -[ 7679.462058] smpboot_thread_fn+0xb7/0x160 -[ 7679.469670] kthread+0xcd/0xf0 -[ 7679.476097] ? __pfx_kthread+0x10/0x10 -[ 7679.483211] ret_from_fork+0x29/0x50 -[ 7679.490047] -[ 7679.495204] ---[ end trace 0000000000000000 ]--- -[ 7679.503179] igc 0000:01:00.0 enp1s0: Register Dump -[ 7679.511230] igc 0000:01:00.0 enp1s0: Register Name Value -[ 7679.519892] igc 0000:01:00.0 enp1s0: CTRL 181c0641 -[ 7679.528782] igc 0000:01:00.0 enp1s0: STATUS 40280683 -[ 7679.537551] igc 0000:01:00.0 enp1s0: CTRL_EXT 10000040 -[ 7679.546284] igc 0000:01:00.0 enp1s0: MDIC 180a3800 -[ 7679.554942] igc 0000:01:00.0 enp1s0: ICR 00000081 -[ 7679.563503] igc 0000:01:00.0 enp1s0: RCTL 04408022 -[ 7679.571963] igc 0000:01:00.0 enp1s0: RDLEN[0-3] 00001000 00001000 00001000 00001000 -[ 7679.583075] igc 0000:01:00.0 enp1s0: RDH[0-3] 00000068 000000b6 0000000f 00000031 -[ 7679.594162] igc 0000:01:00.0 enp1s0: RDT[0-3] 00000066 000000b2 0000000e 00000030 -[ 7679.605174] igc 0000:01:00.0 enp1s0: RXDCTL[0-3] 02040808 02040808 02040808 02040808 -[ 7679.616196] igc 0000:01:00.0 enp1s0: RDBAL[0-3] 1bb7c000 1bb7f000 1bb82000 0ef33000 -[ 7679.627242] igc 0000:01:00.0 enp1s0: RDBAH[0-3] 00000001 00000001 00000001 00000001 -[ 7679.638256] igc 0000:01:00.0 enp1s0: TCTL a503f0fa -[ 7679.646607] igc 0000:01:00.0 enp1s0: TDBAL[0-3] 2ba4a000 1bb6f000 1bb74000 1bb79000 -[ 7679.657609] igc 0000:01:00.0 enp1s0: TDBAH[0-3] 00000001 00000001 00000001 00000001 -[ 7679.668551] igc 0000:01:00.0 enp1s0: TDLEN[0-3] 00001000 00001000 00001000 00001000 -[ 7679.679470] igc 0000:01:00.0 enp1s0: TDH[0-3] 000000a7 0000002d 000000bf 000000d9 -[ 7679.690406] igc 0000:01:00.0 enp1s0: TDT[0-3] 000000a7 0000002d 000000bf 000000d9 -[ 7679.701264] igc 0000:01:00.0 enp1s0: TXDCTL[0-3] 02100108 02100108 02100108 02100108 -[ 7679.712123] igc 0000:01:00.0 enp1s0: Reset adapter -[ 7683.085967] igc 0000:01:00.0 enp1s0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX -[ 8086.945561] ------------[ cut here ]------------ -Entering kdb (current=0xffffffff8220b200, pid 0) on processor 0 -Oops: (null) due to oops @ 0xffffffff81573888 -RIP: 0010:dql_completed+0x148/0x160 -Code: c9 00 48 89 57 58 e9 46 ff ff ff 45 85 e4 41 0f 95 c4 41 39 db 0f 95 -c1 41 84 cc 74 05 45 85 ed 78 0a 44 89 c1 e9 27 ff ff ff <0f> 0b 01 f6 44 89 -c1 29 f1 0f 48 ca eb 8c cc cc cc cc cc cc cc cc -RSP: 0018:ffa0000000003e00 EFLAGS: 00010287 -RAX: 000000000000006c RBX: ffa0000003eb0f78 RCX: ff11000109938000 -RDX: 0000000000000003 RSI: 0000000000000160 RDI: ff110001002e9480 -RBP: ffa0000000003ed8 R08: ff110001002e93c0 R09: ffa0000000003d28 -R10: 0000000000007cc0 R11: 0000000000007c54 R12: 00000000ffffffd9 -R13: ff1100037039cb00 R14: 00000000ffffffd9 R15: ff1100037039c048 -FS: 0000000000000000(0000) GS:ff11000361e00000(0000) knlGS:0000000000000000 -CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 -CR2: 00007ffff7fca168 CR3: 000000013b08a003 CR4: 0000000000471ef8 -DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 -DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400 -PKRU: 55555554 -Call Trace: - - ? igc_poll+0x1a9/0x14d0 [igc] - __napi_poll+0x2e/0x1b0 - net_rx_action+0x126/0x250 - __do_softirq+0xd1/0x295 - irq_exit_rcu+0xc5/0xf0 - common_interrupt+0x86/0xa0 - - - asm_common_interrupt+0x27/0x40 -RIP: 0010:cpuidle_enter_state+0xd3/0x3e0 -Code: 73 f1 ff ff 49 89 c6 8b 05 e2 ca a7 00 85 c0 0f 8f b3 02 00 00 31 ff e8 1b -de 75 ff 80 7d d7 00 0f 85 cd 01 00 00 fb 45 85 ff <0f> 88 fd 00 00 00 49 63 cf -4c 2b 75 c8 48 8d 04 49 48 89 ca 48 8d -RSP: 0018:ffffffff82203df0 EFLAGS: 00000202 -RAX: ff11000361e2a200 RBX: 0000000000000002 RCX: 000000000000001f -RDX: 0000000000000000 RSI: 000000003cf3cf3d RDI: 0000000000000000 -RBP: ffffffff82203e28 R08: 0000075ae38471c8 R09: 0000000000000018 -R10: 000000000000031a R11: ffffffff8238dca0 R12: ffd1ffffff200000 -R13: ffffffff8238dca0 R14: 0000075ae38471c8 R15: 0000000000000002 - cpuidle_enter+0x2e/0x50 - call_cpuidle+0x23/0x40 - do_idle+0x1be/0x220 - cpu_startup_entry+0x20/0x30 - rest_init+0xb5/0xc0 - arch_call_rest_init+0xe/0x30 - start_kernel+0x448/0x760 - x86_64_start_kernel+0x109/0x150 - secondary_startup_64_no_verify+0xe0/0xeb - -more> -[0]kdb> - -[0]kdb> -[0]kdb> go -Catastrophic error detected -kdb_continue_catastrophic=0, type go a second time if you really want to -continue -[0]kdb> go -Catastrophic error detected -kdb_continue_catastrophic=0, attempting to continue -[ 8086.955689] refcount_t: underflow; use-after-free. -[ 8086.955697] WARNING: CPU: 0 PID: 0 at lib/refcount.c:28 refcount_warn_saturate+0xc2/0x110 -[ 8086.955706] Modules linked in: xt_conntrack nft_chain_nat xt_MASQUERADE xt_addrtype nft_compat -nf_tables nfnetlink br_netfilter bridge stp llc overlay dm_mod emrcha(PO) emriio(PO) rktpm(PO) -cegbuf_mod(PO) patch_update(PO) se(PO) sgx_tgts(PO) mktme(PO) keylocker(PO) svtdx(PO) -svfs_pci_hotplug(PO) vtd_mod(PO) davemem(PO) svmabort(PO) svindexio(PO) usbx2(PO) ehci_sched(PO) -svheartbeat(PO) ioapic(PO) sv8259(PO) svintr(PO) lt(PO) pcierootport(PO) enginefw_mod(PO) ata(PO) -smbus(PO) spiflash_cdf(PO) arden(PO) dsa_iax(PO) oobmsm_punit(PO) cpm(PO) svkdb(PO) ebg_pch(PO) -pch(PO) sviotargets(PO) svbdf(PO) svmem(PO) svbios(PO) dram(PO) svtsc(PO) targets(PO) superio(PO) -svkernel(PO) cswitch(PO) mcf(PO) pentiumIII_mod(PO) fs_svfs(PO) mdevdefdb(PO) svfs_os_services(O) -ixgbe mdio mdio_devres libphy emeraldrapids_svdefs(PO) regsupport(O) libnvdimm nls_cp437 -snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_intel snd_intel_dspcfg -snd_hda_codec snd_hwdep x86_pkg_temp_thermal snd_hda_core snd_pcm snd_timer isst_if_mbox_pci -[ 8086.955751] input_leds isst_if_mmio sg snd isst_if_common soundcore wmi button sad9(O) drm -fuse backlight configfs efivarfs ip_tables x_tables vmd sdhci led_class rtl8150 r8152 hid_generic -pegasus mmc_block usbhid mmc_core hid megaraid_sas ixgb igb i2c_algo_bit ice i40e hpsa -scsi_transport_sas e1000e e1000 e100 ax88179_178a usbnet xhci_pci sd_mod xhci_hcd t10_pi -crc32c_intel crc64_rocksoft igc crc64 crc_t10dif usbcore crct10dif_generic ptp crct10dif_common -usb_common pps_core -[ 8086.955784] RIP: 0010:refcount_warn_saturate+0xc2/0x110 -[ 8086.955788] Code: 01 e8 82 e7 b4 ff 0f 0b 5d c3 cc cc cc cc 80 3d 68 c6 eb 00 00 75 81 -48 c7 c7 a0 87 f6 81 c6 05 58 c6 eb 00 01 e8 5e e7 b4 ff <0f> 0b 5d c3 cc cc cc cc 80 3d -42 c6 eb 00 00 0f 85 59 ff ff ff 48 -[ 8086.955790] RSP: 0018:ffa0000000003da0 EFLAGS: 00010286 -[ 8086.955793] RAX: 0000000000000000 RBX: ff1100011da40ee0 RCX: ff11000361e1b888 -[ 8086.955794] RDX: 00000000ffffffd8 RSI: 0000000000000027 RDI: ff11000361e1b880 -[ 8086.955795] RBP: ffa0000000003da0 R08: 80000000ffff9f45 R09: ffa0000000003d28 -[ 8086.955796] R10: ff1100035f840000 R11: 0000000000000028 R12: ff11000319ff8000 -[ 8086.955797] R13: ff1100011bb79d60 R14: 00000000ffffffd6 R15: ff1100037039cb00 -[ 8086.955798] FS: 0000000000000000(0000) GS:ff11000361e00000(0000) knlGS:0000000000000000 -[ 8086.955800] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 -[ 8086.955801] CR2: 00007ffff7fca168 CR3: 000000013b08a003 CR4: 0000000000471ef8 -[ 8086.955803] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 -[ 8086.955803] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400 -[ 8086.955804] PKRU: 55555554 -[ 8086.955805] Call Trace: -[ 8086.955806] -[ 8086.955808] tcp_wfree+0x112/0x130 -[ 8086.955814] skb_release_head_state+0x24/0xa0 -[ 8086.955818] napi_consume_skb+0x9c/0x160 -[ 8086.955821] igc_poll+0x5d8/0x14d0 [igc] -[ 8086.955835] __napi_poll+0x2e/0x1b0 -[ 8086.955839] net_rx_action+0x126/0x250 -[ 8086.955843] __do_softirq+0xd1/0x295 -[ 8086.955846] irq_exit_rcu+0xc5/0xf0 -[ 8086.955851] common_interrupt+0x86/0xa0 -[ 8086.955857] -[ 8086.955857] -[ 8086.955858] asm_common_interrupt+0x27/0x40 -[ 8086.955862] RIP: 0010:cpuidle_enter_state+0xd3/0x3e0 -[ 8086.955866] Code: 73 f1 ff ff 49 89 c6 8b 05 e2 ca a7 00 85 c0 0f 8f b3 02 00 00 31 ff e8 -1b de 75 ff 80 7d d7 00 0f 85 cd 01 00 00 fb 45 85 ff <0f> 88 fd 00 00 00 49 63 cf 4c 2b 75 -c8 48 8d 04 49 48 89 ca 48 8d -[ 8086.955867] RSP: 0018:ffffffff82203df0 EFLAGS: 00000202 -[ 8086.955869] RAX: ff11000361e2a200 RBX: 0000000000000002 RCX: 000000000000001f -[ 8086.955870] RDX: 0000000000000000 RSI: 000000003cf3cf3d RDI: 0000000000000000 -[ 8086.955871] RBP: ffffffff82203e28 R08: 0000075ae38471c8 R09: 0000000000000018 -[ 8086.955872] R10: 000000000000031a R11: ffffffff8238dca0 R12: ffd1ffffff200000 -[ 8086.955873] R13: ffffffff8238dca0 R14: 0000075ae38471c8 R15: 0000000000000002 -[ 8086.955875] cpuidle_enter+0x2e/0x50 -[ 8086.955880] call_cpuidle+0x23/0x40 -[ 8086.955884] do_idle+0x1be/0x220 -[ 8086.955887] cpu_startup_entry+0x20/0x30 -[ 8086.955889] rest_init+0xb5/0xc0 -[ 8086.955892] arch_call_rest_init+0xe/0x30 -[ 8086.955895] start_kernel+0x448/0x760 -[ 8086.955898] x86_64_start_kernel+0x109/0x150 -[ 8086.955900] secondary_startup_64_no_verify+0xe0/0xeb -[ 8086.955904] -[ 8086.955904] ---[ end trace 0000000000000000 ]--- -[ 8086.955912] ------------[ cut here ]------------ -[ 8086.955913] kernel BUG at lib/dynamic_queue_limits.c:27! -[ 8086.955918] invalid opcode: 0000 [#1] SMP -[ 8086.955922] RIP: 0010:dql_completed+0x148/0x160 -[ 8086.955925] Code: c9 00 48 89 57 58 e9 46 ff ff ff 45 85 e4 41 0f 95 c4 41 39 db -0f 95 c1 41 84 cc 74 05 45 85 ed 78 0a 44 89 c1 e9 27 ff ff ff <0f> 0b 01 f6 44 89 -c1 29 f1 0f 48 ca eb 8c cc cc cc cc cc cc cc cc -[ 8086.955927] RSP: 0018:ffa0000000003e00 EFLAGS: 00010287 -[ 8086.955928] RAX: 000000000000006c RBX: ffa0000003eb0f78 RCX: ff11000109938000 -[ 8086.955929] RDX: 0000000000000003 RSI: 0000000000000160 RDI: ff110001002e9480 -[ 8086.955930] RBP: ffa0000000003ed8 R08: ff110001002e93c0 R09: ffa0000000003d28 -[ 8086.955931] R10: 0000000000007cc0 R11: 0000000000007c54 R12: 00000000ffffffd9 -[ 8086.955932] R13: ff1100037039cb00 R14: 00000000ffffffd9 R15: ff1100037039c048 -[ 8086.955933] FS: 0000000000000000(0000) GS:ff11000361e00000(0000) knlGS:0000000000000000 -[ 8086.955934] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 -[ 8086.955935] CR2: 00007ffff7fca168 CR3: 000000013b08a003 CR4: 0000000000471ef8 -[ 8086.955936] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 -[ 8086.955937] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400 -[ 8086.955938] PKRU: 55555554 -[ 8086.955939] Call Trace: -[ 8086.955939] -[ 8086.955940] ? igc_poll+0x1a9/0x14d0 [igc] -[ 8086.955949] __napi_poll+0x2e/0x1b0 -[ 8086.955952] net_rx_action+0x126/0x250 -[ 8086.955956] __do_softirq+0xd1/0x295 -[ 8086.955958] irq_exit_rcu+0xc5/0xf0 -[ 8086.955961] common_interrupt+0x86/0xa0 -[ 8086.955964] -[ 8086.955965] -[ 8086.955965] asm_common_interrupt+0x27/0x40 -[ 8086.955968] RIP: 0010:cpuidle_enter_state+0xd3/0x3e0 -[ 8086.955971] Code: 73 f1 ff ff 49 89 c6 8b 05 e2 ca a7 00 85 c0 0f 8f b3 02 00 00 -31 ff e8 1b de 75 ff 80 7d d7 00 0f 85 cd 01 00 00 fb 45 85 ff <0f> 88 fd 00 00 00 -49 63 cf 4c 2b 75 c8 48 8d 04 49 48 89 ca 48 8d -[ 8086.955972] RSP: 0018:ffffffff82203df0 EFLAGS: 00000202 -[ 8086.955973] RAX: ff11000361e2a200 RBX: 0000000000000002 RCX: 000000000000001f -[ 8086.955974] RDX: 0000000000000000 RSI: 000000003cf3cf3d RDI: 0000000000000000 -[ 8086.955974] RBP: ffffffff82203e28 R08: 0000075ae38471c8 R09: 0000000000000018 -[ 8086.955975] R10: 000000000000031a R11: ffffffff8238dca0 R12: ffd1ffffff200000 -[ 8086.955976] R13: ffffffff8238dca0 R14: 0000075ae38471c8 R15: 0000000000000002 -[ 8086.955978] cpuidle_enter+0x2e/0x50 -[ 8086.955981] call_cpuidle+0x23/0x40 -[ 8086.955984] do_idle+0x1be/0x220 -[ 8086.955985] cpu_startup_entry+0x20/0x30 -[ 8086.955987] rest_init+0xb5/0xc0 -[ 8086.955990] arch_call_rest_init+0xe/0x30 -[ 8086.955992] start_kernel+0x448/0x760 -[ 8086.955994] x86_64_start_kernel+0x109/0x150 -[ 8086.955996] secondary_startup_64_no_verify+0xe0/0xeb -[ 8086.955998] -[ 8086.955999] Modules linked in: xt_conntrack nft_chain_nat xt_MASQUERADE xt_addrtype -nft_compat nf_tables nfnetlink br_netfilter bridge stp llc overlay dm_mod emrcha(PO) emriio(PO) -rktpm(PO) cegbuf_mod(PO) patch_update(PO) se(PO) sgx_tgts(PO) mktme(PO) keylocker(PO) svtdx(PO) -svfs_pci_hotplug(PO) vtd_mod(PO) davemem(PO) svmabort(PO) svindexio(PO) usbx2(PO) ehci_sched(PO) -svheartbeat(PO) ioapic(PO) sv8259(PO) svintr(PO) lt(PO) pcierootport(PO) enginefw_mod(PO) ata(PO) -smbus(PO) spiflash_cdf(PO) arden(PO) dsa_iax(PO) oobmsm_punit(PO) cpm(PO) svkdb(PO) ebg_pch(PO) -pch(PO) sviotargets(PO) svbdf(PO) svmem(PO) svbios(PO) dram(PO) svtsc(PO) targets(PO) superio(PO) -svkernel(PO) cswitch(PO) mcf(PO) pentiumIII_mod(PO) fs_svfs(PO) mdevdefdb(PO) svfs_os_services(O) -ixgbe mdio mdio_devres libphy emeraldrapids_svdefs(PO) regsupport(O) libnvdimm nls_cp437 -snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_intel snd_intel_dspcfg -snd_hda_codec snd_hwdep x86_pkg_temp_thermal snd_hda_core snd_pcm snd_timer isst_if_mbox_pci -[ 8086.956029] input_leds isst_if_mmio sg snd isst_if_common soundcore wmi button sad9(O) drm -fuse backlight configfs efivarfs ip_tables x_tables vmd sdhci led_class rtl8150 r8152 hid_generic -pegasus mmc_block usbhid mmc_core hid megaraid_sas ixgb igb i2c_algo_bit ice i40e hpsa -scsi_transport_sas e1000e e1000 e100 ax88179_178a usbnet xhci_pci sd_mod xhci_hcd t10_pi -crc32c_intel crc64_rocksoft igc crc64 crc_t10dif usbcore crct10dif_generic ptp crct10dif_common -usb_common pps_core -[16762.543675] INFO: NMI handler (kgdb_nmi_handler) took too long to run: 8675587.593 msecs -[16762.543678] INFO: NMI handler (kgdb_nmi_handler) took too long to run: 8675587.595 msecs -[16762.543673] INFO: NMI handler (kgdb_nmi_handler) took too long to run: 8675587.495 msecs -[16762.543679] INFO: NMI handler (kgdb_nmi_handler) took too long to run: 8675587.599 msecs -[16762.543678] INFO: NMI handler (kgdb_nmi_handler) took too long to run: 8675587.598 msecs -[16762.543690] INFO: NMI handler (kgdb_nmi_handler) took too long to run: 8675587.605 msecs -[16762.543684] INFO: NMI handler (kgdb_nmi_handler) took too long to run: 8675587.599 msecs -[16762.543693] INFO: NMI handler (kgdb_nmi_handler) took too long to run: 8675587.613 msecs -[16762.543784] ---[ end trace 0000000000000000 ]--- -[16762.849099] RIP: 0010:dql_completed+0x148/0x160 -PANIC: Fatal exception in interrupt - -Fixes: 9b275176270e ("igc: Add ndo_tx_timeout support") -Tested-by: Alejandra Victoria Alcaraz -Signed-off-by: Muhammad Husaini Zulkifli -Acked-by: Sasha Neftin -Tested-by: Naama Meir -Signed-off-by: Tony Nguyen -Reviewed-by: Simon Horman -Signed-off-by: David S. Miller -(cherry-picked from commit d4a7ce642100765119a872d4aba1bf63e3a22c8a) -Signed-off-by: Fiona Ebner ---- - drivers/net/ethernet/intel/igc/igc_main.c | 40 ++++++++++++++++------- - 1 file changed, 28 insertions(+), 12 deletions(-) - -diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c -index 8b554311518c..a3f89e1dca72 100644 ---- a/drivers/net/ethernet/intel/igc/igc_main.c -+++ b/drivers/net/ethernet/intel/igc/igc_main.c -@@ -310,6 +310,33 @@ static void igc_clean_all_tx_rings(struct igc_adapter *adapter) - igc_clean_tx_ring(adapter->tx_ring[i]); - } - -+static void igc_disable_tx_ring_hw(struct igc_ring *ring) -+{ -+ struct igc_hw *hw = &ring->q_vector->adapter->hw; -+ u8 idx = ring->reg_idx; -+ u32 txdctl; -+ -+ txdctl = rd32(IGC_TXDCTL(idx)); -+ txdctl &= ~IGC_TXDCTL_QUEUE_ENABLE; -+ txdctl |= IGC_TXDCTL_SWFLUSH; -+ wr32(IGC_TXDCTL(idx), txdctl); -+} -+ -+/** -+ * igc_disable_all_tx_rings_hw - Disable all transmit queue operation -+ * @adapter: board private structure -+ */ -+static void igc_disable_all_tx_rings_hw(struct igc_adapter *adapter) -+{ -+ int i; -+ -+ for (i = 0; i < adapter->num_tx_queues; i++) { -+ struct igc_ring *tx_ring = adapter->tx_ring[i]; -+ -+ igc_disable_tx_ring_hw(tx_ring); -+ } -+} -+ - /** - * igc_setup_tx_resources - allocate Tx resources (Descriptors) - * @tx_ring: tx descriptor ring (for a specific queue) to setup -@@ -4993,6 +5020,7 @@ void igc_down(struct igc_adapter *adapter) - /* clear VLAN promisc flag so VFTA will be updated if necessary */ - adapter->flags &= ~IGC_FLAG_VLAN_PROMISC; - -+ igc_disable_all_tx_rings_hw(adapter); - igc_clean_all_tx_rings(adapter); - igc_clean_all_rx_rings(adapter); - } -@@ -7094,18 +7122,6 @@ void igc_enable_rx_ring(struct igc_ring *ring) - igc_alloc_rx_buffers(ring, igc_desc_unused(ring)); - } - --static void igc_disable_tx_ring_hw(struct igc_ring *ring) --{ -- struct igc_hw *hw = &ring->q_vector->adapter->hw; -- u8 idx = ring->reg_idx; -- u32 txdctl; -- -- txdctl = rd32(IGC_TXDCTL(idx)); -- txdctl &= ~IGC_TXDCTL_QUEUE_ENABLE; -- txdctl |= IGC_TXDCTL_SWFLUSH; -- wr32(IGC_TXDCTL(idx), txdctl); --} -- - void igc_disable_tx_ring(struct igc_ring *ring) - { - igc_disable_tx_ring_hw(ring); diff --git a/patches/kernel/0011-mm-suppress-mm-fault-logging-if-fatal-signal-already.patch b/patches/kernel/0011-mm-suppress-mm-fault-logging-if-fatal-signal-already.patch deleted file mode 100644 index 769811b..0000000 --- a/patches/kernel/0011-mm-suppress-mm-fault-logging-if-fatal-signal-already.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Linus Torvalds -Date: Tue, 25 Jul 2023 09:38:32 -0700 -Subject: [PATCH] mm: suppress mm fault logging if fatal signal already pending - -Commit eda0047296a1 ("mm: make the page fault mmap locking killable") -intentionally made it much easier to trigger the "page fault fails -because a fatal signal is pending" situation, by having the mmap locking -fail early in that case. - -We have long aborted page faults in other fatal cases when the actual IO -for a page is interrupted by SIGKILL - which is particularly useful for -the traditional case of NFS hanging due to network issues, but local -filesystems could cause it too if you happened to get the SIGKILL while -waiting for a page to be faulted in (eg lock_folio_maybe_drop_mmap()). - -So aborting the page fault wasn't a new condition - but it now triggers -earlier, before we even get to 'handle_mm_fault()'. And as a result the -error doesn't go through our 'fault_signal_pending()' logic, and doesn't -get filtered away there. - -Normally you'd never even notice, because if a fatal signal is pending, -the new SIGSEGV we send ends up being ignored anyway. - -But it turns out that there is one very noticeable exception: if you -enable 'show_unhandled_signals', the aborted page fault will be logged -in the kernel messages, and you'll get a scary line looking something -like this in your logs: - - pverados[2183248]: segfault at 55e5a00f9ae0 ip 000055e5a00f9ae0 sp 00007ffc0720bea8 error 14 in perl[55e5a00d4000+195000] likely on CPU 10 (core 4, socket 0) - -which is rather misleading. It's not really a segfault at all, it's -just "the thread was killed before the page fault completed, so we -aborted the page fault". - -Fix this by just making it clear that a pending fatal signal means that -any new signal coming in after that is implicitly handled. This will -avoid the misleading logging, since now the signal isn't 'unhandled' any -more. - -Reported-and-tested-by: Fiona Ebner -Tested-by: Thomas Lamprecht -Link: https://lore.kernel.org/lkml/8d063a26-43f5-0bb7-3203-c6a04dc159f8@proxmox.com/ -Acked-by: Oleg Nesterov -Fixes: eda0047296a1 ("mm: make the page fault mmap locking killable") -Signed-off-by: Linus Torvalds -(cherry-picked from commit 5f0bc0b042fc77ff70e14c790abdec960cde4ec1) -Signed-off-by: Fiona Ebner ---- - kernel/signal.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/kernel/signal.c b/kernel/signal.c -index ae26da61c4d9..060f834e9c1a 100644 ---- a/kernel/signal.c -+++ b/kernel/signal.c -@@ -561,6 +561,10 @@ bool unhandled_signal(struct task_struct *tsk, int sig) - if (handler != SIG_IGN && handler != SIG_DFL) - return false; - -+ /* If dying, we handle all new signals by ignoring them */ -+ if (fatal_signal_pending(tsk)) -+ return false; -+ - /* if ptraced, let the tracer determine */ - return !tsk->ptrace; - } diff --git a/patches/kernel/0014-net-thunderbolt-Fix-TCPv6-GSO-checksum-calculation.patch b/patches/kernel/0011-net-thunderbolt-Fix-TCPv6-GSO-checksum-calculation.patch similarity index 100% rename from patches/kernel/0014-net-thunderbolt-Fix-TCPv6-GSO-checksum-calculation.patch rename to patches/kernel/0011-net-thunderbolt-Fix-TCPv6-GSO-checksum-calculation.patch diff --git a/patches/kernel/0015-thunderbolt-Restart-XDomain-discovery-handshake-afte.patch b/patches/kernel/0012-thunderbolt-Restart-XDomain-discovery-handshake-afte.patch similarity index 100% rename from patches/kernel/0015-thunderbolt-Restart-XDomain-discovery-handshake-afte.patch rename to patches/kernel/0012-thunderbolt-Restart-XDomain-discovery-handshake-afte.patch diff --git a/patches/kernel/0016-x86-fpu-Set-X86_FEATURE_OSXSAVE-feature-after-enabli.patch b/patches/kernel/0016-x86-fpu-Set-X86_FEATURE_OSXSAVE-feature-after-enabli.patch deleted file mode 100644 index c82e202..0000000 --- a/patches/kernel/0016-x86-fpu-Set-X86_FEATURE_OSXSAVE-feature-after-enabli.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Feng Tang -Date: Wed, 23 Aug 2023 14:57:47 +0800 -Subject: [PATCH] x86/fpu: Set X86_FEATURE_OSXSAVE feature after enabling - OSXSAVE in CR4 - -0-Day found a 34.6% regression in stress-ng's 'af-alg' test case, and -bisected it to commit b81fac906a8f ("x86/fpu: Move FPU initialization into -arch_cpu_finalize_init()"), which optimizes the FPU init order, and moves -the CR4_OSXSAVE enabling into a later place: - - arch_cpu_finalize_init - identify_boot_cpu - identify_cpu - generic_identify - get_cpu_cap --> setup cpu capability - ... - fpu__init_cpu - fpu__init_cpu_xstate - cr4_set_bits(X86_CR4_OSXSAVE); - -As the FPU is not yet initialized the CPU capability setup fails to set -X86_FEATURE_OSXSAVE. Many security module like 'camellia_aesni_avx_x86_64' -depend on this feature and therefore fail to load, causing the regression. - -Cure this by setting X86_FEATURE_OSXSAVE feature right after OSXSAVE -enabling. - -[ tglx: Moved it into the actual BSP FPU initialization code and added a comment ] - -Fixes: b81fac906a8f ("x86/fpu: Move FPU initialization into arch_cpu_finalize_init()") -Reported-by: kernel test robot -Signed-off-by: Feng Tang -Signed-off-by: Thomas Gleixner -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/lkml/202307192135.203ac24e-oliver.sang@intel.com -Link: https://lore.kernel.org/lkml/20230823065747.92257-1-feng.tang@intel.com -(cherry picked from commit 2c66ca3949dc701da7f4c9407f2140ae425683a5) -Signed-off-by: Thomas Lamprecht ---- - arch/x86/kernel/fpu/xstate.c | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c -index 0bab497c9436..1afbc4866b10 100644 ---- a/arch/x86/kernel/fpu/xstate.c -+++ b/arch/x86/kernel/fpu/xstate.c -@@ -882,6 +882,13 @@ void __init fpu__init_system_xstate(unsigned int legacy_size) - goto out_disable; - } - -+ /* -+ * CPU capabilities initialization runs before FPU init. So -+ * X86_FEATURE_OSXSAVE is not set. Now that XSAVE is completely -+ * functional, set the feature bit so depending code works. -+ */ -+ setup_force_cpu_cap(X86_FEATURE_OSXSAVE); -+ - print_xstate_offset_size(); - pr_info("x86/fpu: Enabled xstate features 0x%llx, context size is %d bytes, using '%s' format.\n", - fpu_kernel_cfg.max_features, diff --git a/patches/kernel/0017-thunderbolt-Mask-ring-interrupt-on-Intel-hardware-as.patch b/patches/kernel/0017-thunderbolt-Mask-ring-interrupt-on-Intel-hardware-as.patch deleted file mode 100644 index 65563c2..0000000 --- a/patches/kernel/0017-thunderbolt-Mask-ring-interrupt-on-Intel-hardware-as.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Mika Westerberg -Date: Tue, 30 May 2023 08:48:29 +0300 -Subject: [PATCH] thunderbolt: Mask ring interrupt on Intel hardware as well - -When resuming from system sleep states the driver issues following -warning on Intel hardware: - - thunderbolt 0000:07:00.0: interrupt for TX ring 0 is already enabled - -The reason for this is that the commit in question did not mask the ring -interrupt on Intel hardware leaving the interrupt active. Fix this by -masking it also in Intel hardware. - -Reported-by: beld zhang -Tested-by: beld zhang -Closes: https://lore.kernel.org/linux-usb/ZHKW5NeabmfhgLbY@debian.me/ -Fixes: c4af8e3fecd0 ("thunderbolt: Clear registers properly when auto clear isn't in use") -Cc: stable@vger.kernel.org -Reviewed-by: Mario Limonciello -Signed-off-by: Mika Westerberg -(cherry picked from commit 9f9666e65359d5047089aef97ac87c50f624ecb0) -Signed-off-by: Thomas Lamprecht ---- - drivers/thunderbolt/nhi.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/drivers/thunderbolt/nhi.c b/drivers/thunderbolt/nhi.c -index 0a525f44ea31..4a6a3802d7e5 100644 ---- a/drivers/thunderbolt/nhi.c -+++ b/drivers/thunderbolt/nhi.c -@@ -56,9 +56,14 @@ static int ring_interrupt_index(const struct tb_ring *ring) - - static void nhi_mask_interrupt(struct tb_nhi *nhi, int mask, int ring) - { -- if (nhi->quirks & QUIRK_AUTO_CLEAR_INT) -- return; -- iowrite32(mask, nhi->iobase + REG_RING_INTERRUPT_MASK_CLEAR_BASE + ring); -+ if (nhi->quirks & QUIRK_AUTO_CLEAR_INT) { -+ u32 val; -+ -+ val = ioread32(nhi->iobase + REG_RING_INTERRUPT_BASE + ring); -+ iowrite32(val & ~mask, nhi->iobase + REG_RING_INTERRUPT_BASE + ring); -+ } else { -+ iowrite32(mask, nhi->iobase + REG_RING_INTERRUPT_MASK_CLEAR_BASE + ring); -+ } - } - - static void nhi_clear_interrupt(struct tb_nhi *nhi, int ring) diff --git a/patches/kernel/0018-x86-microcode-AMD-Load-late-on-both-threads-too.patch b/patches/kernel/0018-x86-microcode-AMD-Load-late-on-both-threads-too.patch deleted file mode 100644 index 7f62eac..0000000 --- a/patches/kernel/0018-x86-microcode-AMD-Load-late-on-both-threads-too.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "Borislav Petkov (AMD)" -Date: Tue, 2 May 2023 19:53:50 +0200 -Subject: [PATCH] x86/microcode/AMD: Load late on both threads too - -commit a32b0f0db3f396f1c9be2fe621e77c09ec3d8e7d upstream. - -Do the same as early loading - load on both threads. - -Signed-off-by: Borislav Petkov (AMD) -Cc: -Link: https://lore.kernel.org/r/20230605141332.25948-1-bp@alien8.de -Signed-off-by: Greg Kroah-Hartman -(cherry picked from commit 94a69d6999419cd21365111b4493070182712299) -Signed-off-by: Stoiko Ivanov ---- - arch/x86/kernel/cpu/microcode/amd.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c -index ac59783e6e9f..53f21fb431c0 100644 ---- a/arch/x86/kernel/cpu/microcode/amd.c -+++ b/arch/x86/kernel/cpu/microcode/amd.c -@@ -705,7 +705,7 @@ static enum ucode_state apply_microcode_amd(int cpu) - rdmsr(MSR_AMD64_PATCH_LEVEL, rev, dummy); - - /* need to apply patch? */ -- if (rev >= mc_amd->hdr.patch_id) { -+ if (rev > mc_amd->hdr.patch_id) { - ret = UCODE_OK; - goto out; - }