forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-05-11 04dd17822334871b23ea2862f7798fb0e0007777
kernel/arch/arm/include/asm/syscall.h
....@@ -55,56 +55,25 @@
5555
5656 static inline void syscall_get_arguments(struct task_struct *task,
5757 struct pt_regs *regs,
58
- unsigned int i, unsigned int n,
5958 unsigned long *args)
6059 {
61
- if (n == 0)
62
- return;
60
+ args[0] = regs->ARM_ORIG_r0;
61
+ args++;
6362
64
- if (i + n > SYSCALL_MAX_ARGS) {
65
- unsigned long *args_bad = args + SYSCALL_MAX_ARGS - i;
66
- unsigned int n_bad = n + i - SYSCALL_MAX_ARGS;
67
- pr_warn("%s called with max args %d, handling only %d\n",
68
- __func__, i + n, SYSCALL_MAX_ARGS);
69
- memset(args_bad, 0, n_bad * sizeof(args[0]));
70
- n = SYSCALL_MAX_ARGS - i;
71
- }
72
-
73
- if (i == 0) {
74
- args[0] = regs->ARM_ORIG_r0;
75
- args++;
76
- i++;
77
- n--;
78
- }
79
-
80
- memcpy(args, &regs->ARM_r0 + i, n * sizeof(args[0]));
63
+ memcpy(args, &regs->ARM_r0 + 1, 5 * sizeof(args[0]));
8164 }
8265
8366 static inline void syscall_set_arguments(struct task_struct *task,
8467 struct pt_regs *regs,
85
- unsigned int i, unsigned int n,
8668 const unsigned long *args)
8769 {
88
- if (n == 0)
89
- return;
70
+ regs->ARM_ORIG_r0 = args[0];
71
+ args++;
9072
91
- if (i + n > SYSCALL_MAX_ARGS) {
92
- pr_warn("%s called with max args %d, handling only %d\n",
93
- __func__, i + n, SYSCALL_MAX_ARGS);
94
- n = SYSCALL_MAX_ARGS - i;
95
- }
96
-
97
- if (i == 0) {
98
- regs->ARM_ORIG_r0 = args[0];
99
- args++;
100
- i++;
101
- n--;
102
- }
103
-
104
- memcpy(&regs->ARM_r0 + i, args, n * sizeof(args[0]));
73
+ memcpy(&regs->ARM_r0 + 1, args, 5 * sizeof(args[0]));
10574 }
10675
107
-static inline int syscall_get_arch(void)
76
+static inline int syscall_get_arch(struct task_struct *task)
10877 {
10978 /* ARM tasks don't change audit architectures on the fly. */
11079 return AUDIT_ARCH_ARM;