
From: Tiezhu Yang <yangtiezhu@loongson.cn> LoongArch inclusion category: feature bugzilla: https://gitee.com/openeuler/kernel/issues/IC10DU CVE: NA -------------------------------- So that they can be probed in the kernel modules to do something. Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> Change-Id: I01c30b086c60e0845cbb83915ccf1990e66836aa --- arch/loongarch/kernel/ptrace.c | 37 ++++++++++++++++++++++++---------- arch/loongarch/kernel/signal.c | 7 +++++-- 2 files changed, 31 insertions(+), 13 deletions(-) diff --git a/arch/loongarch/kernel/ptrace.c b/arch/loongarch/kernel/ptrace.c index 5e2402cfcab0..d2058102179b 100644 --- a/arch/loongarch/kernel/ptrace.c +++ b/arch/loongarch/kernel/ptrace.c @@ -72,9 +72,13 @@ void ptrace_disable(struct task_struct *child) /* regset get/set implementations */ -static int gpr_get(struct task_struct *target, - const struct user_regset *regset, - struct membuf to) +int gpr_get(struct task_struct *target, + const struct user_regset *regset, + struct membuf to); + +int gpr_get(struct task_struct *target, + const struct user_regset *regset, + struct membuf to) { int r; struct pt_regs *regs = task_pt_regs(target); @@ -87,10 +91,15 @@ static int gpr_get(struct task_struct *target, return r; } -static int gpr_set(struct task_struct *target, - const struct user_regset *regset, - unsigned int pos, unsigned int count, - const void *kbuf, const void __user *ubuf) +int gpr_set(struct task_struct *target, + const struct user_regset *regset, + unsigned int pos, unsigned int count, + const void *kbuf, const void __user *ubuf); + +int gpr_set(struct task_struct *target, + const struct user_regset *regset, + unsigned int pos, unsigned int count, + const void *kbuf, const void __user *ubuf) { int err; int a0_start = sizeof(u64) * GPR_NUM; @@ -950,8 +959,11 @@ const struct user_regset_view *task_user_regset_view(struct task_struct *task) return &user_loongarch64_view; } -static inline int read_user(struct task_struct *target, unsigned long addr, - unsigned long __user *data) +int read_user(struct task_struct *target, unsigned long addr, + unsigned long __user *data); + +int read_user(struct task_struct *target, unsigned long addr, + unsigned long __user *data) { unsigned long tmp = 0; @@ -975,8 +987,11 @@ static inline int read_user(struct task_struct *target, unsigned long addr, return put_user(tmp, data); } -static inline int write_user(struct task_struct *target, unsigned long addr, - unsigned long data) +int write_user(struct task_struct *target, unsigned long addr, + unsigned long data); + +int write_user(struct task_struct *target, unsigned long addr, + unsigned long data) { switch (addr) { case 0 ... 31: diff --git a/arch/loongarch/kernel/signal.c b/arch/loongarch/kernel/signal.c index 12dc72868455..e638a5394a08 100644 --- a/arch/loongarch/kernel/signal.c +++ b/arch/loongarch/kernel/signal.c @@ -935,8 +935,11 @@ SYSCALL_DEFINE0(rt_sigreturn) return 0; } -static int setup_rt_frame(void *sig_return, struct ksignal *ksig, - struct pt_regs *regs, sigset_t *set) +int setup_rt_frame(void *sig_return, struct ksignal *ksig, + struct pt_regs *regs, sigset_t *set); + +int setup_rt_frame(void *sig_return, struct ksignal *ksig, + struct pt_regs *regs, sigset_t *set) { int err = 0; struct extctx_layout extctx; -- 2.43.0