forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
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,9 +90,7 @@
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
10295 do_slower_path:
10396 UNWIND(.fnend )
....@@ -139,7 +132,7 @@
139132 cmp r2, #TASK_SIZE
140133 blne addr_limit_check_failed
141134 ldr r1, [tsk, #TI_FLAGS]
142
- tst r1, #_TIF_WORK_MASK
135
+ movs r1, r1, lsl #16
143136 bne slow_work_pending
144137 no_work_pending:
145138 asm_trace_hardirqs_on save = 0
....@@ -171,12 +164,36 @@
171164 */
172165
173166 .align 5
167
+#ifdef CONFIG_HARDEN_BRANCH_HISTORY
168
+ENTRY(vector_bhb_loop8_swi)
169
+ sub sp, sp, #PT_REGS_SIZE
170
+ stmia sp, {r0 - r12}
171
+ mov r8, #8
172
+1: b 2f
173
+2: subs r8, r8, #1
174
+ bne 1b
175
+ dsb
176
+ isb
177
+ b 3f
178
+ENDPROC(vector_bhb_loop8_swi)
179
+
180
+ .align 5
181
+ENTRY(vector_bhb_bpiall_swi)
182
+ sub sp, sp, #PT_REGS_SIZE
183
+ stmia sp, {r0 - r12}
184
+ mcr p15, 0, r8, c7, c5, 6 @ BPIALL
185
+ isb
186
+ b 3f
187
+ENDPROC(vector_bhb_bpiall_swi)
188
+#endif
189
+ .align 5
174190 ENTRY(vector_swi)
175191 #ifdef CONFIG_CPU_V7M
176192 v7m_exception_entry
177193 #else
178194 sub sp, sp, #PT_REGS_SIZE
179195 stmia sp, {r0 - r12} @ Calling r0 - r12
196
+3:
180197 ARM( add r8, sp, #S_PC )
181198 ARM( stmdb r8, {sp, lr}^ ) @ Calling sp, lr
182199 THUMB( mov r8, sp )
....@@ -378,7 +395,7 @@
378395 movhs scno, #0
379396 csdb
380397 #endif
381
- stmloia sp, {r5, r6} @ shuffle args
398
+ stmialo sp, {r5, r6} @ shuffle args
382399 movlo r0, r1
383400 movlo r1, r2
384401 movlo r2, r3