!1983 release 6.6.0-80.0.0
From: @anred Reviewed-by: @zhengzengkai Signed-off-by: @zhengzengkai
This commit is contained in:
commit
5e2284540c
@ -0,0 +1,33 @@
|
||||
From d6f6c9be930393fcf58b17f97de954b597c1b521 Mon Sep 17 00:00:00 2001
|
||||
From: ZhangPeng <zhangpeng362@huawei.com>
|
||||
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 <zhangpeng362@huawei.com>
|
||||
---
|
||||
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
|
||||
|
||||
160
0026-Revert-perf-x86-avoid-missing-caller-address-in-stac.patch
Normal file
160
0026-Revert-perf-x86-avoid-missing-caller-address-in-stac.patch
Normal file
@ -0,0 +1,160 @@
|
||||
From 07b9bacf7faaedc8d86b7b2a7fcea19cbfbee9df Mon Sep 17 00:00:00 2001
|
||||
From: ZhangPeng <zhangpeng362@huawei.com>
|
||||
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 <zhangpeng362@huawei.com>
|
||||
---
|
||||
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 <asm/desc.h>
|
||||
#include <asm/ldt.h>
|
||||
#include <asm/unwind.h>
|
||||
-#include <asm/uprobes.h>
|
||||
-#include <asm/ibt.h>
|
||||
|
||||
#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 <linux/compat.h>
|
||||
@@ -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
|
||||
|
||||
59
kernel.spec
59
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 .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,57 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Mar 06 2025 ZhangPeng <zhangpeng362@huawei.com> - 6.6.0-80.0.0.74
|
||||
- Revert kabi broken patch.
|
||||
|
||||
* Wed Mar 05 2025 ZhangPeng <zhangpeng362@huawei.com> - 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 <zhangpeng362@huawei.com> - 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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user