From 581ec295346f5a9a3d7765ea6dd1e124a2ad1bf7 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Tue, 27 Jan 2026 15:09:07 +0100 Subject: [PATCH] drop arm64-set-__nocfi-on-swsusp_arch_resume.patch --- ...64-set-__nocfi-on-swsusp_arch_resume.patch | 94 ------------------- queue-5.10/series | 1 - 2 files changed, 95 deletions(-) delete mode 100644 queue-5.10/arm64-set-__nocfi-on-swsusp_arch_resume.patch diff --git a/queue-5.10/arm64-set-__nocfi-on-swsusp_arch_resume.patch b/queue-5.10/arm64-set-__nocfi-on-swsusp_arch_resume.patch deleted file mode 100644 index cf9bc3e94f..0000000000 --- a/queue-5.10/arm64-set-__nocfi-on-swsusp_arch_resume.patch +++ /dev/null @@ -1,94 +0,0 @@ -From e2f8216ca2d8e61a23cb6ec355616339667e0ba6 Mon Sep 17 00:00:00 2001 -From: Zhaoyang Huang -Date: Thu, 22 Jan 2026 19:49:25 +0800 -Subject: arm64: Set __nocfi on swsusp_arch_resume() - -From: Zhaoyang Huang - -commit e2f8216ca2d8e61a23cb6ec355616339667e0ba6 upstream. - -A DABT is reported[1] on an android based system when resume from hiberate. -This happens because swsusp_arch_suspend_exit() is marked with SYM_CODE_*() -and does not have a CFI hash, but swsusp_arch_resume() will attempt to -verify the CFI hash when calling a copy of swsusp_arch_suspend_exit(). - -Given that there's an existing requirement that the entrypoint to -swsusp_arch_suspend_exit() is the first byte of the .hibernate_exit.text -section, we cannot fix this by marking swsusp_arch_suspend_exit() with -SYM_FUNC_*(). The simplest fix for now is to disable the CFI check in -swsusp_arch_resume(). - -Mark swsusp_arch_resume() as __nocfi to disable the CFI check. - -[1] -[ 22.991934][ T1] Unable to handle kernel paging request at virtual address 0000000109170ffc -[ 22.991934][ T1] Mem abort info: -[ 22.991934][ T1] ESR = 0x0000000096000007 -[ 22.991934][ T1] EC = 0x25: DABT (current EL), IL = 32 bits -[ 22.991934][ T1] SET = 0, FnV = 0 -[ 22.991934][ T1] EA = 0, S1PTW = 0 -[ 22.991934][ T1] FSC = 0x07: level 3 translation fault -[ 22.991934][ T1] Data abort info: -[ 22.991934][ T1] ISV = 0, ISS = 0x00000007, ISS2 = 0x00000000 -[ 22.991934][ T1] CM = 0, WnR = 0, TnD = 0, TagAccess = 0 -[ 22.991934][ T1] GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0 -[ 22.991934][ T1] [0000000109170ffc] user address but active_mm is swapper -[ 22.991934][ T1] Internal error: Oops: 0000000096000007 [#1] PREEMPT SMP -[ 22.991934][ T1] Dumping ftrace buffer: -[ 22.991934][ T1] (ftrace buffer empty) -[ 22.991934][ T1] Modules linked in: -[ 22.991934][ T1] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.6.98-android15-8-g0b1d2aee7fc3-dirty-4k #1 688c7060a825a3ac418fe53881730b355915a419 -[ 22.991934][ T1] Hardware name: Unisoc UMS9360-base Board (DT) -[ 22.991934][ T1] pstate: 804000c5 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--) -[ 22.991934][ T1] pc : swsusp_arch_resume+0x2ac/0x344 -[ 22.991934][ T1] lr : swsusp_arch_resume+0x294/0x344 -[ 22.991934][ T1] sp : ffffffc08006b960 -[ 22.991934][ T1] x29: ffffffc08006b9c0 x28: 0000000000000000 x27: 0000000000000000 -[ 22.991934][ T1] x26: 0000000000000000 x25: 0000000000000000 x24: 0000000000000820 -[ 22.991934][ T1] x23: ffffffd0817e3000 x22: ffffffd0817e3000 x21: 0000000000000000 -[ 22.991934][ T1] x20: ffffff8089171000 x19: ffffffd08252c8c8 x18: ffffffc080061058 -[ 22.991934][ T1] x17: 00000000529c6ef0 x16: 00000000529c6ef0 x15: 0000000000000004 -[ 22.991934][ T1] x14: ffffff8178c88000 x13: 0000000000000006 x12: 0000000000000000 -[ 22.991934][ T1] x11: 0000000000000015 x10: 0000000000000001 x9 : ffffffd082533000 -[ 22.991934][ T1] x8 : 0000000109171000 x7 : 205b5d3433393139 x6 : 392e32322020205b -[ 22.991934][ T1] x5 : 000000010916f000 x4 : 000000008164b000 x3 : ffffff808a4e0530 -[ 22.991934][ T1] x2 : ffffffd08058e784 x1 : 0000000082326000 x0 : 000000010a283000 -[ 22.991934][ T1] Call trace: -[ 22.991934][ T1] swsusp_arch_resume+0x2ac/0x344 -[ 22.991934][ T1] hibernation_restore+0x158/0x18c -[ 22.991934][ T1] load_image_and_restore+0xb0/0xec -[ 22.991934][ T1] software_resume+0xf4/0x19c -[ 22.991934][ T1] software_resume_initcall+0x34/0x78 -[ 22.991934][ T1] do_one_initcall+0xe8/0x370 -[ 22.991934][ T1] do_initcall_level+0xc8/0x19c -[ 22.991934][ T1] do_initcalls+0x70/0xc0 -[ 22.991934][ T1] do_basic_setup+0x1c/0x28 -[ 22.991934][ T1] kernel_init_freeable+0xe0/0x148 -[ 22.991934][ T1] kernel_init+0x20/0x1a8 -[ 22.991934][ T1] ret_from_fork+0x10/0x20 -[ 22.991934][ T1] Code: a9400a61 f94013e0 f9438923 f9400a64 (b85fc110) - -Co-developed-by: Jeson Gao -Signed-off-by: Jeson Gao -Signed-off-by: Zhaoyang Huang -Acked-by: Will Deacon -Acked-by: Mark Rutland -Cc: -[catalin.marinas@arm.com: commit log updated by Mark Rutland] -Signed-off-by: Catalin Marinas -Signed-off-by: Greg Kroah-Hartman ---- - arch/arm64/kernel/hibernate.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/arm64/kernel/hibernate.c -+++ b/arch/arm64/kernel/hibernate.c -@@ -639,7 +639,7 @@ static int trans_pgd_create_copy(pgd_t * - * Memory allocated by get_safe_page() will be dealt with by the hibernate code, - * we don't need to free it here. - */ --int swsusp_arch_resume(void) -+int __nocfi swsusp_arch_resume(void) - { - int rc; - void *zero_page; diff --git a/queue-5.10/series b/queue-5.10/series index c280ef7959..f2fe6ed44b 100644 --- a/queue-5.10/series +++ b/queue-5.10/series @@ -98,7 +98,6 @@ mmc-rtsx_pci_sdmmc-implement-sdmmc_card_busy-function.patch wifi-ath10k-fix-dma_free_coherent-pointer.patch wifi-mwifiex-fix-a-loop-in-mwifiex_update_ampdu_rxwinsize.patch wifi-rsi-fix-memory-corruption-due-to-not-set-vif-driver-data-size.patch -arm64-set-__nocfi-on-swsusp_arch_resume.patch octeontx2-fix-otx2_dma_map_page-error-return-code.patch slimbus-core-fix-runtime-pm-imbalance-on-report-present.patch slimbus-core-fix-device-reference-leak-on-report-present.patch -- 2.47.3