From e4b3c964b17e72602154c729ea93c34fe5d5060d Mon Sep 17 00:00:00 2001 From: ZhangPeng Date: Wed, 5 Mar 2025 09:37:07 +0800 Subject: [PATCH 1/2] release 6.6.0-80.0.0 --- SOURCE | 2 +- kernel.spec | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 51 insertions(+), 3 deletions(-) diff --git a/SOURCE b/SOURCE index 54257c48..46d19c37 100644 --- a/SOURCE +++ b/SOURCE @@ -1 +1 @@ -6.6.0-79.0.0 +6.6.0-80.0.0 diff --git a/kernel.spec b/kernel.spec index 053ee974..7dc2f7d0 100644 --- a/kernel.spec +++ b/kernel.spec @@ -40,9 +40,9 @@ rm -f test_openEuler_sign.ko test_openEuler_sign.ko.sig %global upstream_version 6.6 %global upstream_sublevel 0 -%global devel_release 79 +%global devel_release 80 %global maintenance_release .0.0 -%global pkg_release .72 +%global pkg_release .73 %global openeuler_lts 1 %global openeuler_major 2403 @@ -1126,6 +1126,54 @@ fi %endif %changelog +* Wed Mar 05 2025 ZhangPeng - 6.6.0-80.0.0.73 +- !15278 tracing/osnoise: Fix resetting of tracepoints +- tracing/osnoise: Fix resetting of tracepoints +- !15227 [openEuler-24.03-LTS][linux-6.6.y sync] Backport 6.6.54-6.6.55 LTS Conflicts Patches +- mm: z3fold: deprecate CONFIG_Z3FOLD +- null_blk: Remove usage of the deprecated ida_simple_xx() API +- iomap: handle a post-direct I/O invalidate race in iomap_write_delalloc_release +- proc: add config & param to block forcing mem writes +- HID: Ignore battery for all ELAN I2C-HID devices +- ata: sata_sil: Rename sil_blacklist to sil_quirks +- ata: pata_serverworks: Do not use the term blacklist +- scsi: aacraid: Rearrange order of struct aac_srb_unit +- uprobes: Fix race in uprobe_free_utask +- perf,x86: Fix kabi breakage in struct uprobe_task +- perf,x86: avoid missing caller address in stack traces captured in uprobe +- i2c: synquacer: Deal with optional PCLK correctly +- i2c: synquacer: Remove a clk reference from struct synquacer_i2c +- !15248 [openEuler-24.03-LTS][linux-6.6.y sync] Backport 6.6.64-6.6.66 LTS Conflicts Patches +- mm/mempolicy: fix migrate_to_node() assuming there is at least one VMA in a MM +- selftests/ftrace: adjust offset for kprobe syntax error test +- bpf: Remove unnecessary kfree(im_node) in lpm_trie_update_elem +- iommu/arm-smmu: Defer probe of clients after smmu device bound +- gpio: grgpio: use a helper variable to store the address of ofdev->dev +- KVM: arm64: Change kvm_handle_mmio_return() return polarity +- !15270 v2 mm: Backport two patch +- arm64/mm: Drop setting PTE_TYPE_PAGE in pte_mkcont() +- arm64/mm: Re-organize arch_make_huge_pte() +- mm/hugetlb: use arch_make_huge_pte() in __hugetlb_insert_pfn() +- !14820 [OLK-6.6]Hygon: Support kernel boot verification and secret injection for Hygon CSV3 VM +- KVM: SVM: CSV: Support inject secret to Hygon CSV3 guest +- KVM: SVM: CSV: Support issue non-4K aligned CSV3_CMD_LAUNCH_ENCRYPT_DATA and more than once +- KVM: SVM: CSV: Provide KVM_CSV3_SET_GUEST_PRIVATE_MEMORY ioctl interface +- KVM: SVM: CSV: Provide KVM_CAP_HYGON_COCO_EXT interface +- crypto: ccp: Provide csv_get_extension_info() to present extensions of newer CSV firmware +- KVM: SVM: CSV: Ensure all the GPRs and some non-GPRs are synced before LAUNCH_ENCRYPT_VMCB +- crypto: ccp: Get api version again when update Hygon CSV firmware at runtime +- KVM: SVM: CSV: Fix the vm_size even if CSV3 feature is unsupported on Hygon CPUs +- !14819 [OLK-6.6]Hygon: Support CSV3 Attestation +- x86/configs: openeuler_defconfig: Set CONFIG_VIRT_DRIVERS=y and CONFIG_EFI_SECRET=m +- virt/csv-guest: Provide interface for request of CSV3 attestation report +- x86/csv: Add support for CSV3 ATTESTATION secure call +- x86/csv: Define ATTESTATION secure call command +- !15251 Intel: Backport upstream auto-tune per-CPU pageset size patchset +- mm and cache_info: remove unnecessary CPU cache info update +- !15185 hwtracing: hisi_ptt: Initialize the filter sysfs attribute when allocation +- hwtracing: hisi_ptt: Check duplicate filters before allocation +- hwtracing: hisi_ptt: Initialize the filter sysfs attribute when allocation + * Wed Feb 26 2025 ZhangPeng - 6.6.0-79.0.0.72 - !15203 usb: cdc-acm: Check control transfer buffer size before access - usb: cdc-acm: Check control transfer buffer size before access -- Gitee From 726478d1411d9f4a208f322d9a53fb362889f25c Mon Sep 17 00:00:00 2001 From: ZhangPeng Date: Thu, 6 Mar 2025 10:09:16 +0800 Subject: [PATCH 2/2] Revert kabi broken patch. Signed-off-by: ZhangPeng --- ...Fix-kabi-breakage-in-struct-uprobe_t.patch | 33 ++++ ...avoid-missing-caller-address-in-stac.patch | 160 ++++++++++++++++++ kernel.spec | 9 +- 3 files changed, 201 insertions(+), 1 deletion(-) create mode 100644 0025-Revert-perf-x86-Fix-kabi-breakage-in-struct-uprobe_t.patch create mode 100644 0026-Revert-perf-x86-avoid-missing-caller-address-in-stac.patch diff --git a/0025-Revert-perf-x86-Fix-kabi-breakage-in-struct-uprobe_t.patch b/0025-Revert-perf-x86-Fix-kabi-breakage-in-struct-uprobe_t.patch new file mode 100644 index 00000000..3bef823a --- /dev/null +++ b/0025-Revert-perf-x86-Fix-kabi-breakage-in-struct-uprobe_t.patch @@ -0,0 +1,33 @@ +From d6f6c9be930393fcf58b17f97de954b597c1b521 Mon Sep 17 00:00:00 2001 +From: ZhangPeng +Date: Thu, 6 Mar 2025 09:59:48 +0800 +Subject: [PATCH 1/2] Revert "perf,x86: Fix kabi breakage in struct + uprobe_task" + +This reverts commit d25d7bb0c8f0db098b5323fda5f5f1f2aee295e6. + +Signed-off-by: ZhangPeng +--- + include/linux/uprobes.h | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/include/linux/uprobes.h b/include/linux/uprobes.h +index b0c15a04adcc..c4ff1159cb81 100644 +--- a/include/linux/uprobes.h ++++ b/include/linux/uprobes.h +@@ -77,9 +77,11 @@ struct uprobe_task { + struct uprobe *active_uprobe; + unsigned long xol_vaddr; + ++ struct arch_uprobe *auprobe; ++ + struct return_instance *return_instances; + unsigned int depth; +- KABI_USE(1, struct arch_uprobe *auprobe) ++ KABI_RESERVE(1) + KABI_RESERVE(2) + KABI_RESERVE(3) + KABI_RESERVE(4) +-- +2.25.1 + diff --git a/0026-Revert-perf-x86-avoid-missing-caller-address-in-stac.patch b/0026-Revert-perf-x86-avoid-missing-caller-address-in-stac.patch new file mode 100644 index 00000000..c240664b --- /dev/null +++ b/0026-Revert-perf-x86-avoid-missing-caller-address-in-stac.patch @@ -0,0 +1,160 @@ +From 07b9bacf7faaedc8d86b7b2a7fcea19cbfbee9df Mon Sep 17 00:00:00 2001 +From: ZhangPeng +Date: Thu, 6 Mar 2025 10:01:49 +0800 +Subject: [PATCH 2/2] Revert "perf,x86: avoid missing caller address in stack + traces captured in uprobe" + +This reverts commit 0429117191082a7a5f0ff2c420f1d8f64d506d90. + +Signed-off-by: ZhangPeng +--- + arch/x86/events/core.c | 63 ----------------------------------------- + include/linux/uprobes.h | 2 -- + kernel/events/uprobes.c | 2 -- + 3 files changed, 67 deletions(-) + +diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c +index ad0932f84094..1eb4b68d2a49 100644 +--- a/arch/x86/events/core.c ++++ b/arch/x86/events/core.c +@@ -41,8 +41,6 @@ + #include + #include + #include +-#include +-#include + + #include "perf_event.h" + +@@ -2820,46 +2818,6 @@ static unsigned long get_segment_base(unsigned int segment) + return get_desc_base(desc); + } + +-#ifdef CONFIG_UPROBES +-/* +- * Heuristic-based check if uprobe is installed at the function entry. +- * +- * Under assumption of user code being compiled with frame pointers, +- * `push %rbp/%ebp` is a good indicator that we indeed are. +- * +- * Similarly, `endbr64` (assuming 64-bit mode) is also a common pattern. +- * If we get this wrong, captured stack trace might have one extra bogus +- * entry, but the rest of stack trace will still be meaningful. +- */ +-static bool is_uprobe_at_func_entry(struct pt_regs *regs) +-{ +- struct arch_uprobe *auprobe; +- +- if (!current->utask) +- return false; +- +- auprobe = current->utask->auprobe; +- if (!auprobe) +- return false; +- +- /* push %rbp/%ebp */ +- if (auprobe->insn[0] == 0x55) +- return true; +- +- /* endbr64 (64-bit only) */ +- if (user_64bit_mode(regs) && is_endbr(*(u32 *)auprobe->insn)) +- return true; +- +- return false; +-} +- +-#else +-static bool is_uprobe_at_func_entry(struct pt_regs *regs) +-{ +- return false; +-} +-#endif /* CONFIG_UPROBES */ +- + #ifdef CONFIG_IA32_EMULATION + + #include +@@ -2871,7 +2829,6 @@ perf_callchain_user32(struct pt_regs *regs, struct perf_callchain_entry_ctx *ent + unsigned long ss_base, cs_base; + struct stack_frame_ia32 frame; + const struct stack_frame_ia32 __user *fp; +- u32 ret_addr; + + if (user_64bit_mode(regs)) + return 0; +@@ -2881,12 +2838,6 @@ perf_callchain_user32(struct pt_regs *regs, struct perf_callchain_entry_ctx *ent + + fp = compat_ptr(ss_base + regs->bp); + pagefault_disable(); +- +- /* see perf_callchain_user() below for why we do this */ +- if (is_uprobe_at_func_entry(regs) && +- !get_user(ret_addr, (const u32 __user *)regs->sp)) +- perf_callchain_store(entry, ret_addr); +- + while (entry->nr < entry->max_stack) { + if (!valid_user_frame(fp, sizeof(frame))) + break; +@@ -2915,7 +2866,6 @@ perf_callchain_user(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs + { + struct stack_frame frame; + const struct stack_frame __user *fp; +- unsigned long ret_addr; + + if (perf_guest_state()) { + /* TODO: We don't support guest os callchain now */ +@@ -2939,19 +2889,6 @@ perf_callchain_user(struct perf_callchain_entry_ctx *entry, struct pt_regs *regs + return; + + pagefault_disable(); +- +- /* +- * If we are called from uprobe handler, and we are indeed at the very +- * entry to user function (which is normally a `push %rbp` instruction, +- * under assumption of application being compiled with frame pointers), +- * we should read return address from *regs->sp before proceeding +- * to follow frame pointers, otherwise we'll skip immediate caller +- * as %rbp is not yet setup. +- */ +- if (is_uprobe_at_func_entry(regs) && +- !get_user(ret_addr, (const unsigned long __user *)regs->sp)) +- perf_callchain_store(entry, ret_addr); +- + while (entry->nr < entry->max_stack) { + if (!valid_user_frame(fp, sizeof(frame))) + break; +diff --git a/include/linux/uprobes.h b/include/linux/uprobes.h +index c4ff1159cb81..86d0868b584a 100644 +--- a/include/linux/uprobes.h ++++ b/include/linux/uprobes.h +@@ -77,8 +77,6 @@ struct uprobe_task { + struct uprobe *active_uprobe; + unsigned long xol_vaddr; + +- struct arch_uprobe *auprobe; +- + struct return_instance *return_instances; + unsigned int depth; + KABI_RESERVE(1) +diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c +index a14b0059f177..69c9f0d33f0a 100644 +--- a/kernel/events/uprobes.c ++++ b/kernel/events/uprobes.c +@@ -2073,7 +2073,6 @@ static void handler_chain(struct uprobe *uprobe, struct pt_regs *regs) + bool need_prep = false; /* prepare return uprobe, when needed */ + + down_read(&uprobe->register_rwsem); +- current->utask->auprobe = &uprobe->arch; + for (uc = uprobe->consumers; uc; uc = uc->next) { + int rc = 0; + +@@ -2088,7 +2087,6 @@ static void handler_chain(struct uprobe *uprobe, struct pt_regs *regs) + + remove &= rc; + } +- current->utask->auprobe = NULL; + + if (need_prep && !remove) + prepare_uretprobe(uprobe, regs); /* put bp at return */ +-- +2.25.1 + diff --git a/kernel.spec b/kernel.spec index 7dc2f7d0..e2f1ebc3 100644 --- a/kernel.spec +++ b/kernel.spec @@ -42,7 +42,7 @@ rm -f test_openEuler_sign.ko test_openEuler_sign.ko.sig %global upstream_sublevel 0 %global devel_release 80 %global maintenance_release .0.0 -%global pkg_release .73 +%global pkg_release .74 %global openeuler_lts 1 %global openeuler_major 2403 @@ -145,6 +145,8 @@ Patch0021: 0021-Revert-kabi-reserve-space-for-internal.h.patch Patch0022: 0022-Revert-kabi-reserve-space-for-perf_event.h.patch Patch0023: 0023-Revert-bpf-Add-kabi-reserve-padding-for-uapi-struct-.patch Patch0024: 0024-Revert-x86-config-Remove-CONFIG_-prefix-under-Kconfi.patch +Patch0025: 0025-Revert-perf-x86-Fix-kabi-breakage-in-struct-uprobe_t.patch +Patch0026: 0026-Revert-perf-x86-avoid-missing-caller-address-in-stac.patch #BuildRequires: BuildRequires: module-init-tools, patch >= 2.5.4, bash >= 2.03, tar @@ -386,6 +388,8 @@ Applypatches series.conf %{_builddir}/kernel-%{version}/linux-%{KernelVer} %patch0004 -p1 %endif +%patch0025 -p1 +%patch0026 -p1 %patch0024 -p1 %patch0005 -p1 %patch0006 -p1 @@ -1126,6 +1130,9 @@ fi %endif %changelog +* Thu Mar 06 2025 ZhangPeng - 6.6.0-80.0.0.74 +- Revert kabi broken patch. + * Wed Mar 05 2025 ZhangPeng - 6.6.0-80.0.0.73 - !15278 tracing/osnoise: Fix resetting of tracepoints - tracing/osnoise: Fix resetting of tracepoints -- Gitee