hc
2024-10-22 8ac6c7a54ed1b98d142dce24b11c6de6a1e239a5
kernel/arch/arm/lib/copy_from_user.S
....@@ -1,13 +1,10 @@
1
+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * linux/arch/arm/lib/copy_from_user.S
34 *
45 * Author: Nicolas Pitre
56 * Created: Sep 29, 2005
67 * Copyright: MontaVista Software, Inc.
7
- *
8
- * This program is free software; you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License version 2 as
10
- * published by the Free Software Foundation.
118 */
129
1310 #include <linux/linkage.h>
....@@ -34,12 +31,13 @@
3431 * Number of bytes NOT copied.
3532 */
3633
34
+#ifdef CONFIG_CPU_USE_DOMAINS
35
+
3736 #ifndef CONFIG_THUMB2_KERNEL
3837 #define LDR1W_SHIFT 0
3938 #else
4039 #define LDR1W_SHIFT 1
4140 #endif
42
-#define STR1W_SHIFT 0
4341
4442 .macro ldr1w ptr reg abort
4543 ldrusr \reg, \ptr, 4, abort=\abort
....@@ -57,9 +55,29 @@
5755 ldr4w \ptr, \reg5, \reg6, \reg7, \reg8, \abort
5856 .endm
5957
58
+#else
59
+
60
+#define LDR1W_SHIFT 0
61
+
62
+ .macro ldr1w ptr reg abort
63
+ USERL(\abort, W(ldr) \reg, [\ptr], #4)
64
+ .endm
65
+
66
+ .macro ldr4w ptr reg1 reg2 reg3 reg4 abort
67
+ USERL(\abort, ldmia \ptr!, {\reg1, \reg2, \reg3, \reg4})
68
+ .endm
69
+
70
+ .macro ldr8w ptr reg1 reg2 reg3 reg4 reg5 reg6 reg7 reg8 abort
71
+ USERL(\abort, ldmia \ptr!, {\reg1, \reg2, \reg3, \reg4, \reg5, \reg6, \reg7, \reg8})
72
+ .endm
73
+
74
+#endif /* CONFIG_CPU_USE_DOMAINS */
75
+
6076 .macro ldr1b ptr reg cond=al abort
6177 ldrusr \reg, \ptr, 1, \cond, abort=\abort
6278 .endm
79
+
80
+#define STR1W_SHIFT 0
6381
6482 .macro str1w ptr reg abort
6583 W(str) \reg, [\ptr], #4
....@@ -70,7 +88,7 @@
7088 .endm
7189
7290 .macro str1b ptr reg cond=al abort
73
- str\cond\()b \reg, [\ptr], #1
91
+ strb\cond \reg, [\ptr], #1
7492 .endm
7593
7694 .macro enter reg1 reg2