forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/arch/arm/kernel/entry-common.S
....@@ -1,11 +1,8 @@
1
+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * linux/arch/arm/kernel/entry-common.S
34 *
45 * Copyright (C) 2000 Russell King
5
- *
6
- * This program is free software; you can redistribute it and/or modify
7
- * it under the terms of the GNU General Public License version 2 as
8
- * published by the Free Software Foundation.
96 */
107
118 #include <asm/assembler.h>
....@@ -56,9 +53,7 @@
5653 cmp r2, #TASK_SIZE
5754 blne addr_limit_check_failed
5855 ldr r1, [tsk, #TI_FLAGS] @ re-check for syscall tracing
59
- tst r1, #((_TIF_SYSCALL_WORK | _TIF_WORK_MASK) & ~_TIF_SECCOMP)
60
- bne fast_work_pending
61
- tst r1, #_TIF_SECCOMP
56
+ movs r1, r1, lsl #16
6257 bne fast_work_pending
6358
6459
....@@ -95,11 +90,8 @@
9590 cmp r2, #TASK_SIZE
9691 blne addr_limit_check_failed
9792 ldr r1, [tsk, #TI_FLAGS] @ re-check for syscall tracing
98
- tst r1, #((_TIF_SYSCALL_WORK | _TIF_WORK_MASK) & ~_TIF_SECCOMP)
99
- bne do_slower_path
100
- tst r1, #_TIF_SECCOMP
93
+ movs r1, r1, lsl #16
10194 beq no_work_pending
102
-do_slower_path:
10395 UNWIND(.fnend )
10496 ENDPROC(ret_fast_syscall)
10597
....@@ -139,7 +131,7 @@
139131 cmp r2, #TASK_SIZE
140132 blne addr_limit_check_failed
141133 ldr r1, [tsk, #TI_FLAGS]
142
- tst r1, #_TIF_WORK_MASK
134
+ movs r1, r1, lsl #16
143135 bne slow_work_pending
144136 no_work_pending:
145137 asm_trace_hardirqs_on save = 0
....@@ -171,12 +163,36 @@
171163 */
172164
173165 .align 5
166
+#ifdef CONFIG_HARDEN_BRANCH_HISTORY
167
+ENTRY(vector_bhb_loop8_swi)
168
+ sub sp, sp, #PT_REGS_SIZE
169
+ stmia sp, {r0 - r12}
170
+ mov r8, #8
171
+1: b 2f
172
+2: subs r8, r8, #1
173
+ bne 1b
174
+ dsb
175
+ isb
176
+ b 3f
177
+ENDPROC(vector_bhb_loop8_swi)
178
+
179
+ .align 5
180
+ENTRY(vector_bhb_bpiall_swi)
181
+ sub sp, sp, #PT_REGS_SIZE
182
+ stmia sp, {r0 - r12}
183
+ mcr p15, 0, r8, c7, c5, 6 @ BPIALL
184
+ isb
185
+ b 3f
186
+ENDPROC(vector_bhb_bpiall_swi)
187
+#endif
188
+ .align 5
174189 ENTRY(vector_swi)
175190 #ifdef CONFIG_CPU_V7M
176191 v7m_exception_entry
177192 #else
178193 sub sp, sp, #PT_REGS_SIZE
179194 stmia sp, {r0 - r12} @ Calling r0 - r12
195
+3:
180196 ARM( add r8, sp, #S_PC )
181197 ARM( stmdb r8, {sp, lr}^ ) @ Calling sp, lr
182198 THUMB( mov r8, sp )
....@@ -378,7 +394,7 @@
378394 movhs scno, #0
379395 csdb
380396 #endif
381
- stmloia sp, {r5, r6} @ shuffle args
397
+ stmialo sp, {r5, r6} @ shuffle args
382398 movlo r0, r1
383399 movlo r1, r2
384400 movlo r2, r3