mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-07-04 00:03:25 -04:00
Here are the patches which made on 5.1-rc6 and all are tested in our
buildroot gitlab CI:
57892579
- Fixup vdsp&fpu issues in kernel
- Add dynamic function tracer
- Use in_syscall & forget_syscall instead of r11_sig
- Reconstruct signal processing
- Support dynamic start physical address
- Fixup wrong update_mmu_cache implementation
- Support vmlinux bootup with MMU off
- Use va_pa_offset instead of phys_offset
- Fixup syscall_trace return processing flow
- Add perf callchain support
- Add perf_arch_fetch_caller_regs support
- Add page fault perf event support
- Add support for perf registers sampling
-----BEGIN PGP SIGNATURE-----
iQJGBAABCAAwFiEE2KAv+isbWR/viAKHAXH1GYaIxXsFAlzReFYSHHJlbl9ndW9A
Yy1za3kuY29tAAoJEAFx9RmGiMV71cwP/RQX7VHqH4Slak5myDlHCabzkzYJjU/a
zy8RdFSfzjXkNWzz8zo68Ze+DqDBDLfRHftqikg7CpZF6nQo5vC0VfDtKJZ6x2bi
8bzuTIb5q0eZEUJmJROjnT4At3mVr+sCZlrEshI0DIAbd1BT34LLF2hE06pbBlej
kH9ngVJw2XpIFJE/S2Gs0ieftOuOEvXgwxFdXrEdfr2TFR+Z9UGd8imLL4LF/2Fu
rbfxFDNUAAmm6CzIzDz7BMGlQAXdMGsQiQDa3YuJ/v4yg5EuqzDz+p1bwEGxGelB
R0FYjOxfLB8PUkpigb3v1E21eUHbVQsWgvWdH0ksoJIFUboH0TRRmtsjQnbBaSkE
DT5tJHTzqTIIawo+PuOlQ8to3i8L6oWE0MlNG354wjgwfus21v2mWwbXzWtnYsN+
dv4VZ9NDwifrpGY6k9j+vVmqzQ2FYBtrX4R/oPBc3StYdPqKJHp2K87Y3UQVLqPH
D7GxV6LHLy4RlpSbA4Zq6zZRQTQmgLFaVRXbnMuicy1QZyYzp8wagpYRh+XJVvg7
rQr8EnP2B7G8N1JLrh3B46TxuZHOSQXXTsg3fbcIlv5at3vQ1xx6KU2InKLBvALU
3ICsOnJ/UzID35zmTY0KSxzEL7u5LxJUYPd/YxKpfuN405jvnvnSCAYKm0fFuYnJ
tFVd9uZc5W4q
=oQ+E
-----END PGP SIGNATURE-----
Merge tag 'csky-for-linus-5.2-rc1' of git://github.com/c-sky/csky-linux
Pull arch/csky updates from Guo Ren:
- Fixup vdsp&fpu issues in kernel
- Add dynamic function tracer
- Use in_syscall & forget_syscall instead of r11_sig
- Reconstruct signal processing
- Support dynamic start physical address
- Fixup wrong update_mmu_cache implementation
- Support vmlinux bootup with MMU off
- Use va_pa_offset instead of phys_offset
- Fixup syscall_trace return processing flow
- Add perf callchain support
- Add perf_arch_fetch_caller_regs support
- Add page fault perf event support
- Add support for perf registers sampling
* tag 'csky-for-linus-5.2-rc1' of git://github.com/c-sky/csky-linux:
csky/syscall_trace: Fixup return processing flow
csky: Fixup compile warning
csky: Add support for perf registers sampling
csky: add page fault perf event support
csky: Use va_pa_offset instead of phys_offset
csky: Support vmlinux bootup with MMU off
csky: Add perf_arch_fetch_caller_regs support
csky: Fixup wrong update_mmu_cache implementation
csky: Support dynamic start physical address
csky: Reconstruct signal processing
csky: Use in_syscall & forget_syscall instead of r11_sig
csky: Add non-uapi asm/ptrace.h namespace
csky: mm/fault.c: Remove duplicate header
csky: remove redundant generic-y
csky: Update syscall_trace_enter/exit implementation
csky: Add perf callchain support
csky/ftrace: Add dynamic function tracer (include graph tracer)
csky: Fixup vdsp&fpu issues in kernel
77 lines
1.5 KiB
C
77 lines
1.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
|
|
#ifndef __ASM_SYSCALL_H
|
|
#define __ASM_SYSCALL_H
|
|
|
|
#include <linux/sched.h>
|
|
#include <linux/err.h>
|
|
#include <abi/regdef.h>
|
|
#include <uapi/linux/audit.h>
|
|
|
|
extern void *sys_call_table[];
|
|
|
|
static inline int
|
|
syscall_get_nr(struct task_struct *task, struct pt_regs *regs)
|
|
{
|
|
return regs_syscallid(regs);
|
|
}
|
|
|
|
static inline void
|
|
syscall_set_nr(struct task_struct *task, struct pt_regs *regs,
|
|
int sysno)
|
|
{
|
|
regs_syscallid(regs) = sysno;
|
|
}
|
|
|
|
static inline void
|
|
syscall_rollback(struct task_struct *task, struct pt_regs *regs)
|
|
{
|
|
regs->a0 = regs->orig_a0;
|
|
}
|
|
|
|
static inline long
|
|
syscall_get_error(struct task_struct *task, struct pt_regs *regs)
|
|
{
|
|
unsigned long error = regs->a0;
|
|
|
|
return IS_ERR_VALUE(error) ? error : 0;
|
|
}
|
|
|
|
static inline long
|
|
syscall_get_return_value(struct task_struct *task, struct pt_regs *regs)
|
|
{
|
|
return regs->a0;
|
|
}
|
|
|
|
static inline void
|
|
syscall_set_return_value(struct task_struct *task, struct pt_regs *regs,
|
|
int error, long val)
|
|
{
|
|
regs->a0 = (long) error ?: val;
|
|
}
|
|
|
|
static inline void
|
|
syscall_get_arguments(struct task_struct *task, struct pt_regs *regs,
|
|
unsigned long *args)
|
|
{
|
|
args[0] = regs->orig_a0;
|
|
args++;
|
|
memcpy(args, ®s->a1, 5 * sizeof(args[0]));
|
|
}
|
|
|
|
static inline void
|
|
syscall_set_arguments(struct task_struct *task, struct pt_regs *regs,
|
|
const unsigned long *args)
|
|
{
|
|
regs->orig_a0 = args[0];
|
|
args++;
|
|
memcpy(®s->a1, args, 5 * sizeof(regs->a1));
|
|
}
|
|
|
|
static inline int
|
|
syscall_get_arch(struct task_struct *task)
|
|
{
|
|
return AUDIT_ARCH_CSKY;
|
|
}
|
|
|
|
#endif /* __ASM_SYSCALL_H */
|